Dynamic Memory Allocation in C

What are Pointers in C

It is a variable which is used to store the address of another variable.

pointer

Advantages of pointer

  • Return multiple values from function
  • Access any memory location
  • Improves the performance
  • Reduces the code
  • Used for dynamic memory allocation
  • Used in arrays, functions and structures
Symbol Name Description
& address of operator Determines the address of a variable.
* indirection operator Accesses the value at the address.

Example

#include <stdio.h><br>
#include <conio.h><br>
void main(){<br>
clrscr();<br>
int n=50;<br>
int *p;    //declaration of pointer<br>
p=&n; //stores the address of number variable<br>
printf("Address of n variable is %x n",&n);<br>
printf("Address of p variable is %x n",p);<br>
printf("Value of p variable is %d n",*p);<br>
getch();<br>
}<br>

Output
Address of n variable is fff4
Address of p variable is fff4
Value of p variable is 50

Dynamic memory allocation in C

Dynamic memory allocation means to allocate the memory at run time. Dynamic memory allocation is possible by 4 functions of stdlib.h header file.

  1. malloc()
  2. calloc()
  3. realloc()
  4. free()
malloc() Allocates single block of requested memory.
calloc() Allocates multiple block of requested memory.
realloc() Reallocates the memory occupied by malloc() or calloc() functions.
free() Frees the dynamically allocated memory.

About the Author

Software Developer | Technical Research Analyst Lead | Full Stack & Cloud Systems

Ayaan Alam is a Software Developer and Technical Research Analyst Lead with around 3 years of experience in full-stack development, Artificial Intelligence, cloud computing, and system design. He specializes in building scalable applications and creating industry-focused technical content on AI, programming, web development, cloud technologies, and modern software engineering.