Dynamic (re)size array

#include
#include

int main(void) {
 int *a;
 int i = 5;

 if((a = (int *)malloc(i * sizeof(int))) == NULL) {
  fprintf(stderr, "Error: failed malloc\n");
  return 1;
 }
 for(i = 0; i < 5; i++)
  a[i] = i;

 printf("-- array after malloc\n");
 for(i = 0; i < 5; i++)
  printf(" a[%d] = %d\n", i, a[i]);

 if((a = (int *)realloc(a, i * sizeof(int))) == NULL) {
  fprintf(stderr, "Error: failed realloc\n");
  return 1;
 }
 for(i = 0; i < 10; i++)
  a[i] = i;

 printf("\n-- array after realloc\n");
 for(i = 0; i < 10; i++)
  printf(" a[%d] = %d\n", i, a[i]);

 free(a);
 return 0;
}

0 comments:

Post a Comment