#include #include #include 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 */