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

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 key...

Short notes on database schema & database independence- computer science fundamentals tutorial

            Database Schema &  Data Independence PDF version of this post also available. to download the click the link given at the end of this post.           Database Schema : -  A database schema   is the skeleton structure that represents the logical view of the entire database. It defines how the data is organized and how relat ion among them are associated.  Database schema  formulates all the constrains that are to be applied on the data. A database schema defines its entities and the relationship among them. It contains descriptive details of the database which can be described by means of schema diagram. A database schema can be divided into two categories.   I.     Physical database schema : - this schema contain to the actual storage of data and its form of storage like files, indices etc. It defines how the data will be stored in a secondary storage. ...

C program to find factorial of number using function - FCST

C program to find factorial of number using function Problem description In this program take number as input & then it show the factorial of given number as output. Problem solution 1.take a number as input. 2.declare the void Fact(int) function globally if you want or declare the function prototype  into the main() function. 3.after taking input call the function into main() . 4.then define the function definition. 5.after taking function definition for loop started in this function definition. 6. In for loop i=1 & fact=1 then fact=1. after this loop is continue and incremented by1 until the n is grater than equal to i. continuity of loop is depend on what number take as input .  Program code: #include<stdio.h> void Fact(int);//function prototype declearation int i,fact=1;//global variable declearation int main()  { int n; printf("\n enter the  number:"); scanf("%d",&n); Fact(n);//function call } //func...