void*realloc(void*ptr,size_tsize);
例如,你第一次用malloc函数动态分配了空间,随着一步步运算,觉得空间不够,需要加大空间,与此同时,原先空间里的数据需保留并还要继续使用,这时需要用realloc,它能满足此需要。
下面是完整的程序例子。告诉使用realloc的窍门。
#include
#include
intmain()
{
intinput,n;
intcount=0;
int*numbers=NULL;
int*more_numbers=NULL;
do{
printf("Enteranintegervalue(0toend):");
scanf("%d",&input);
count++;
more_numbers=(int*)realloc(numbers,count*sizeof(int));
if(more_numbers!=NULL){
numbers=more_numbers;
numbers[count-1]=input;
}
else{
free(numbers);
puts("Error(re)allocatingmemory");
exit(1);
}
}while(input!=0);
printf("Numbersentered:");
for(n=0;n
return0;
}