Memory Allocation Notes

Advertisement
/* static storage class program example */
 
#include <stdio.h>
#define MAXNUM 3
void sum_up(void);
int  main()
{
    int count;
    printf("\n*****static storage*****\n");
    printf("Key in 3 numbers to be summed ");
    for(count = 0; count < MAXNUM; count++)
        sum_up();
    printf("\n*****COMPLETED*****\n");
 
return 0;
}
void sum_up(void)
{
    /* at compile time, sum is initialized to 0 */
    static int sum = 0;
    int num;
    printf("\nEnter a number: ");
    scanf("%d", &num);
    sum += num;
 
    printf("\nThe current total is: %d\n", sum);
 
}
 
/************************Register*********************/
 
1.                   ·        Register keyword is used to define local variable.
2.                  ·        Local variable are stored in register instead of RAM.
3.                  ·        As variable is stored in register, the Maximum size of variable = Maximum Size of Register
4.                  ·        unary operator [&] is not associated with it because Value is not stored in RAM instead it is stored in Register.
5.                  ·        This is generally used for faster access.
6.                  ·        Common use is “Counter“.
7.                    
 
Syntax
{
register int count;
}
Register storage classes example
#include<stdio.h>
 
void  main()
{
int num1,num2;
register int sum;
 
printf("\nEnter the Number 1 : ");
scanf("%d",&num1);
 
printf("\nEnter the Number 2 : ");
scanf("%d",&num2);
 
sum = num1 + num2;
 
printf("\nSum of Numbers : %d",sum);
 
getch();
}
 
/***********Automatic Storage Classes and Variables**********/
This is default storage class
All variables declared are of type Auto by default 
In order to Explicit declaration of variable use ‘auto’ keyword
auto int num1 ;   // Explicit Declaration 
Features :
 Storage
Memory
 Scope
Local / Block Scope
 Life time
Exists as long as Control remains in the block
 Default initial Value
Garbage
Example :
#include<stdio.h>
#include<conio.h>
void main()
{
 auto mum = 20 ;
 {
      auto num = 60 ;
             printf("nNum : %d",num);
 }
 printf("nNum : %d",num);
}
Output :
Num : 60
Num : 20
 
 
/**********Malloc*********/
*C program to create memory for int, char and float variable at run time.*/
 
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int *iVar;
    char *cVar;
    float *fVar;
     
    /*allocating memory dynamically*/
     
    iVar=(int*)malloc(1*sizeof(int));
    cVar=(char*)malloc(1*sizeof(char));
    fVar=(float*)malloc(1*sizeof(float));
     
    printf("Enter integer value: ");
    scanf("%d",iVar);
     
    printf("Enter character value: ");
    scanf(" %c",cVar);
     
    printf("Enter float value: ");
    scanf("%f",fVar);
     
    printf("Inputted value are: %d, %c, %.2f\n",*iVar,*cVar,*fVar);
     
    /*free allocated memory*/
    free(iVar);
    free(cVar);
    free(fVar);
 
    return 0;
}
OUTPUT:-
    Enter integer value: 100
    Enter character value: x
    Enter float value: 123.45
    Inputted value are: 100, x, 123.45
 

Note:- if Solved Assignment will not be downloaded after the payment, checkout your email address there is a email form instamojo and there will be the option of DOWNLOAD FILES please click on that your assignment will be downloaded instantly and please open file in PDF reader.


11AM TO 6PM CALL US +919811854308 Contact us:- ignouassignmentguru@gmail.com
Previous
Next Post »
Thanks for your comment