【发布时间】:2015-05-18 04:56:43
【问题描述】:
代码:
int * data;
data = malloc(sizeof(int)*10);
int i;
for(i=0;i<10;i++)
data[i]=i;
int * aux;
aux = realloc(data,sizeof(int)*20);
if(aux)
data=aux;
for(i=10;i<20;i++)
data[i]=i;
一位老师曾经告诉我“不,你不能在没有备份的情况下重新分配包含元素的数组”;我说,“哦,好的”,但现在这对我来说毫无意义。
指针指向的内存已经分配,所以“不可能”丢失它;如果我做一个安全的realloc 应该没有问题。
我的问题是:如果我想调整一个动态数组的大小,上面的示例代码是否有效?
【问题讨论】: