#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int *arr;
int *tmpArr;
unsigned int i;
arr = malloc(10*sizeof arr[0]);
if(!arr)
{
printf("memory allocation error.\n");
return 1;
}
for(i=0; i<10; ++i)
{
arr[i] = i;
printf("%d ",arr[i]);
}
printf("\n");
//increase
tmpArr = realloc(arr,12*sizeof arr[0]);
if(!tmpArr)
{
printf("memory reallocation error.\n");
free(arr);
return 1;
}
arr = tmpArr;
arr[10]=10;
arr[11]=11;
for(i=0; i<12; ++i) printf("%d ",arr[i]);
printf("\n");
//shrink
tmpArr = realloc(arr,8*sizeof arr[0]);
if(!tmpArr)
{
printf("memory reallocation error.\n");
free(arr);
return 1;
}
arr = tmpArr;
for(i=0; i<8; ++i) printf("%d ",arr[i]);
printf("\n");
free(arr);
return 0;
}
/*
output:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7
*/
Comments