C语言中如何动态增加内存空间

2022-04-04 教育 607阅读
动态增加内存空间可以用realloc函数。函数原型是。
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;nfree(numbers);
return0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com