The ones who are crazy enough to think they can change the world are the ones who do.
- Steve Jobs

C Realloc()

Why Realloc()

Now, you are already partition the microprocessor's memory to your 6 team either by using malloc() or by using calloc(). One of your team demand for extra memory space as they are left with zero space of their allocated memory, now it's your responsibility to allocated memory to that team so that they can complete their task. Here is the function to reallocate the memory space to whomsoever are in demand of memory.

Realloc in calloc

realloc in calloc in c

Realloc in malloc

realloc in malloc c

What is Realloc?

  • realloc() is the programmer's shorthand to represent reallocation.
  • realloc() reallocates the already allocated memory.
  • realloc() allocates an exact quantity of memory explicitly to a program, when required.
  • allocation of memory is done either in consecutive memory location or in non-consecutive memory location.

Realloc() Syntax

Syntax
data_type *realloc  (no of spaces, size of data_type);

C Program - Realloc()

Let us consider that our user will enter 3 numbers and we allocated three spaces for interger number using malloc() inbuilt memory function and then if our user enter more than three numbers, we should not stop our user instead we need to reallocate the number to the same pointer variable using realloc().

realloc.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *numbers = (int*)malloc(3* sizeof(int));
int i, space = 3, number, n = 0;
printf("malloc allocated 3 memory spaces\n\n");
printf("Enter as many numbers you like or -1 to exit\n");
scanf("%d ",&number);
while(number !=-1)
{
if(n >= space)
{
space+=3;
printf("reallocate 3 more memory\n");
numbers = (int*)realloc(numbers, space * sizeof(int));
}
numbers[n] = number;
if(n!=0)
scanf("%d",&number);
n++;
}
printf("The numbers you entered...\n");
for(i = 0;i < n;i++)
printf("%3d", numbers[i]);
return 0;
}
  • malloc allocated 3 memory spaces
  • Enter as many numbers you like or -1 to exit
  • 1
  • 2
  • 3
  • reallocate 3 more memory..
  • 4
  • 5
  • 6
  • reallocate 3 more memory
  • -1
  • The numbers you entered...
  • 1 2 3 4 5 6

Report Us

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report