原始问题
我可以使用realloc()如下代码的函数:
int *ptr, i, num=5;
for (i=0; i<num; i++)
  void *nptr = realloc (ptr, (i+1) * sizeof(int) );
不,您应该ptr在开头初始化然后分配新值
int *ptr = 0;
for (unsigned i=0; i<5; i++) {
  void *nptr = realloc (ptr, (i+1) * sizeof(int) );
  if (nptr) ptr = nptr;
  else abort();
}
否则,在第一次调用时,您可以传递一些随机值realloc.并且您在后续调用中分配的内存将丢失.