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 skilled Software Developer and Technical Research Analyst Lead with 2 years of professional experience in Java, Python, and C++. With expertise in full-stack development, system design, and cloud computing, he consistently delivers high-quality, scalable solutions. Known for producing accurate and insightful technical content, Ayaan contributes valuable knowledge to the developer community.