Dynamic Memory Allocation in C

This tutorial covers concepts of dynamic memory allocation in c. Syntax and use of different functions used for dynamic memory allocation in c have been explained in this tutorial. Use of malloc(), calloc() , ralloc() and free() functions are explained in this tutorial.

Dynamic memory allocation in C

What is dynamic memory allocation?

What are different memory allocation functions in c ?

What is difference between malloc(), calloc() and realloc() functions ?

This tutorial covers concepts of dynamic memory allocation in c. Syntax and use of different functions used for dynamic memory allocation in c have been explained in this tutorial. Use of malloc(), calloc() , ralloc()  and free() functions are explained in this tutorial.

(A) Introduction

When we assign memory statically by declaring the array size within the program ,thus once we declare the array size before use it then there could a scenario once this array become short to hold the more data item. One solution to this problem is allocate the memory at run time.

.Dynamic memory allocation means that allocating the memory at run time as per the necessity.

(B) Difference between static memory allocation and dynamic memory allocation

Difference between dynamic and static memory allocation is as shown in following table.

Static Memory Allocation
Dynamic Memory Allocation
Memory is allotted at compile time
Memory is allotted at run time
Memory cannot be increase during execution of the program
Memory can be increase during  execution of the program
Static memory allocation is done using array
Dynamic memory allocation is done using liked list.

dynamic memory allocation in c programming

(C) Dynamic Memory Allocation Functions

There dynamic memory in c allocated using following functions

Most commonly used dynamic memory allocation functions in c area  as follow :

(i) malloc( ): malloc() 
may be a memory allocation perform that allocates requested size bytes and it returns a pointer to the primary byte of the allotted memory space. The malloc perform returns a pointer of type void thus we are able to assign it to any type of pointer. 

The syntax of the malloc() 
perform is as follow:

ptr= (cast 
type *) malloc(byte-size);

where ptr 
may be a pointer of type cast-type. 

Example, the statement

x=(int *) malloc(10 *sizeof(int))

means a memory space admire ten times the scale of associate degree int byte  is reserved and therefore the address of the primary computer memory unit of memory allotted is assigned to the pointer x of int type..

The malloc function can also allocate space for complex data types such as structures. For

ptr= (struct student*) malloc(sizeof (struct student));

where ptr is a pointer of type struct student.

(ii) calloc( ): calloc() is other memory allocation function that allocates space for an array of items, initializes them to zero and so returns a pointer to the memory. This perform is often used for requesting memory space at run time. The syntax of calloc() method is as follow:

ptr= (cast 
type *) calloc(n, element-size);

This statement allocates contiguous 
space for n blocks, every of size element-size bytes.

(iii) realloc( )
: realloc is a memory allocation function that modifies the size of previously allocated space. Sometime it may happen that the allocated memory space is larger than what is required or it is less than what is required. In both cases, we can change the memory size already allocated with the help of the realloc function known as reallocation of memory.

 For example, if the original allocation is done by statement

ptr= malloc(size);

then reallocation is done by the statement


which will allocate a new memory space of size newsize to the pointer variable ptr and returns a pointer to the first byte of the new memory block

(iv) free() - memory allotted by malloc() and calloc() perform will be unleash with the help
 free() perform.

Syntax of free() perform is as follow




addressing modes types,1,advance-java,2,aktu entrance exam,1,aktu exam schedule,1,ASP,1,bare machine,1,base register and limit register,1,C Programming,12,C Plus Plus,1,C Programming,5,C Programming Questions,1,C programming study material for gate exam,7,Cache Memory,1,CBNST Program,1,Childcare,1,CJ,1,Cloud Computing,1,CN,3,Computer Architecture,2,Computer architecture based questions for gate exam,11,Computer Network,8,Computer Network Study Material,2,Computer network study material for gate,1,Computer Networks,8,Computer networks GATE Questions,2,Computer Science Study Material for Gate,14,computer science study material for gate exam,28,conditional statements in c,1,contiguous memory allocation,2,Core Java,3,cyber crime report,1,Cyber crime status,1,cybercrime and security,1,cybercrime examples,1,Data Structure,2,Data Structure Questions,1,Data Transmission Architecture,1,Data Transmission in wsn,1,database normalization,1,DBMS,6,dbms question paper,1,DE,1,Digital Electronics,1,DS,4,Dynamic memory allocation in c,1,Electroencephalogram,1,file management in operating system notes,1,Gate 2017,3,Gate 2017 Admit card,1,gate cse study material,1,gate practice set,7,gate study material for computer science,12,Gate study material for computer science 2017,1,General,3,HCL Aptitude Test,1,HR Interview Questions,1,HTML,4,Important Date of Gate 2017 Exam,1,Information Security Policy,1,internal and external fragmentation,1,JDBC,2,JS,1,lagrange's interpolation formula,1,lagrange's interpolation formula examples,1,memory fragmentation,1,memory management,1,memory management questions and answer in os,1,Motivational,4,NCER,1,Numerical Techniques Lab,1,OOT,1,Operating System,10,Operating System Gate Questions,1,Operating System Objective Questions,4,Operating System Questions Bank,1,Operating system questions for gate,1,Operating System Study material,2,operating system study material for gate exam,13,Operating system tutorial,2,page swapping,1,paged memory allocation,1,paged memory allocation in operating system,1,Pointer in C,4,Process based question for gate,1,Regression testing,1,relocation in memory management,1,relocation registe,1,relocation register,1,resident monitor,1,resident monitor in operating system,1,routing table,1,Software Engineering,10,Software Engineering baes study material for gate,1,Software Quality Assurance,3,software verification methods,1,Stack,1,Structure in C,1,Study Material for gate Computer Science,7,swapping in memory management,1,swapping in operating system,1,TCS Code Vita,1,TCS Interview Questions,1,Technical Interview,1,Technical Questions from DBMS,1,Thrashing in Operating System,1,Threads concept in operating system,1,Tips to Learn Coding,1,Types of operating system,1,UML,1,Virtualization,1,What is process control block ?,1,what is software testing?,1,Wireless Sensor Network,3,worst fit algorithm for memory allocation,1,XML,2,
Computer Science Junction: Dynamic Memory Allocation in C
Dynamic Memory Allocation in C
This tutorial covers concepts of dynamic memory allocation in c. Syntax and use of different functions used for dynamic memory allocation in c have been explained in this tutorial. Use of malloc(), calloc() , ralloc() and free() functions are explained in this tutorial.
Computer Science Junction
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share. STEP 2: Click the link you shared to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy