1、复习C语言中的内存分配函数:malloc、realloc、calloc、free,编写程序完成以下功能:

(1)用malloc或calloc函数分配一个能存储10个整型数的存储空间;

提示:p=(int*)malloc(10*sizeof(int));

(2)通过scanf函数向(1)中分配的存储空间输入10个整数;

(3)再通过realloc函数将先前分配的空间扩容为可存储20整型数的大小;

提示:p=(int*)realloc(p,20* sizeof(int));

(4)向扩容后的空间中再输入另外的10个整数;

(5)用printf函数输入所有的整数;

(6)最后用free函数释放存储空间。

请思考并回答:初次分配的存储空间的地址和重新分配的存储空间的地址一样吗?证明你的结论?

#include

#include

int main()

{

int *p,i;

p=( int* )malloc(10 * sizeof(int)); //内存分配

printf("输入十个整数:");

for(i=0;i<10;i++)

scanf("%d",p+i);

p=(int*)realloc(p,20* sizeof(int)); //空间扩容

printf("n输入另外十个数:");

for(i=10;i<20;i++)

scanf("%d",p+i);

printf("n输出所有整数:");

for(i=0;i<20;i++)

printf("%dt",*(p+i));

printf("n");

free(p);

return 0;

}

921bf33601210eeb8101a4c5ccf5a0aa.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐