Skip to main content

Dynamic memory allocation in C - Computer science fundamentals tutorial


Dynamic memory allocation

Dynamic memory allocation refers to the method of allocating a block of memory and releasing it when the memory is not required at the time of running the program. A block of memory can be used to store values of simple or sub scripted variable and a block of memory can be accessed using a pointer. Malloc(), calloc(), realloc() are the function used in dynamic memory allocation and this function are available in the header file <alloc.h>. when we have to dynamically allocate memory for variables in our programs then pointers are the only way to go. When we use malloc() for dynamic memory allocation then you need to manage the memory allocated for variables yourself.

malloc():-  malloc() is used to allocate a single memory block memory to store value of specific data type.

Syntax of malloc(): -  pointer variable name=(type *)malloc(size);

Example: -
ptr=(int*)malloc(100);
ptr= (int*) malloc(size of (int));

calloc(): - calloc() function used to allocate memory in multiple blocks of same size during the program execution space allocated is used to store values of an array or structure.

ptr = (type*) calloc(n,m);
n = number of block to be allocated
m = number of bytes in each block of memory. 

realloc(): - realloc() function is used to modified or reallocated the memory space which is previously allotted. This facilate to increase or reduced the allotted space at a late stage in a program.
ptr = realloc()

Free() function: - it is used to release the memory space which allotted using malloc() or calloc() or realloc(). When this function is executed ,allotted blocks of memory are released.

DIFFERENCE BETWEEN STATIC MEMORY ALLOCATION AND DYNAMIC MEMORY ALLOCATION IN C:

DIFFERENCE BETWEEN MALLOC() AND CALLOC() FUNCTIONS IN C:

Comments

Popular posts from this blog

type casting in C. - computer science fundamentals tutorial

Typecasting in C Typecasting is also known as "forced conversion". It refers to changing variable one data type to another data type.          Typecasting in can be certified into following two types: - 1) Implicit type casting. 2) Explicit type casting. Implicit type casting : - It is also known as "Automatic type conversion". It is done by compiler on its own without any external trigger from user. Generally takes place when in an expression more than one data type is present in such condition. Type conversion take places to avoid data lose. Example : - #include<stdio.h> main() {   char y = 'a';   int b = y; printf("%c",y); printf("%d",b); } Explicit Type casting : - This process also called 'Type casting' and it is user defined . Here the user can type cast the result to make it of particular data type. Example : - #include<stdio.h> main() { int m

Important MCQ of RDBMS( Relational database management system)-FCST

Important MCQ of RDBMS  1. A RDBMS consists a collection of ? a. Tables b. Fields c. Records d. Keys  ANS/- a. table 2. The term attribute refers to a ___________ of a table a. Record b. Tuple c. Column d. Key   ans/- c. Column 3. In relational model, the row of table is known to be ?  a. Relation b. Entity field c. Tuple d. Attribute  ans/- C. Tuple 4. . Address field of a person should not be part of primary key, since it is likely to ? a. Dependent b. Too long c. Changed d. Not changed  ans/- c. Changed 5. The relational model is concerned with ? a. Data structure and Data integrity b. Data Manipulation c. Both a and b d. None of these  ans/- c. Both a and b 6. Which is the false statement from the following ? a. A veiw is a named derived table b. A name relation is variable c. A veiw is a named reation and is virtual d. None of these  ans/- d. None of these 7. The union of primary keys of the related entity sets becomes a

Solve-write C program to find grade of student by using nested else-if statement

C program to find grade of student by using nested else-if statement Problem Description This program take input as your number then show your grade. Problem Solution 1. enter your marks as input. 2. then check your marks with 'If' block's condition. if it satisfied then show your grade as output. 3. if it not satisfied then it checks with all else-if block's condition repeatedly. 4. print the grade according to your given marks as input and exit. Program codes:-   #include<stdio.h> main() { int n; printf("\n enter the marks:"); scanf("%d",&n); if(n>89) printf("O"); else if(n>79) printf("E"); else if(n>69) printf("A"); else if(n>59) printf("B"); else if(n>49) printf("C"); else if(n>39) printf("D"); else printf("F"); } Program explanation:- 1. enter your marks. for example we take 70 .