C语言中如何用malloc和realloc函数定义一个二维数组并且通过循环操作用realloc函数扩展二维数组的长度? 5

 我来答
夜独行孤单
2016-03-07 · TA获得超过3460个赞
知道大有可为答主
回答量:2803
采纳率:82%
帮助的人:626万
展开全部
char* buffer;
buffer = (char *)malloc(initialize size);
buffer = (char *)realloc(buffer, initialize size+add size);
一般做法是设定一个初始值,再设定一个追加值。
比如:*p初始分配10个字符空间。
当空间不够用的时候,每次增加20个字符空间。这样会增加效率。

象你这样:初始p = (char *)malloc(10);
当判断空间不够用的时候,重分配:
p = (char*)realloc(p, 10+100*n++); //n做重分配次数计数器,初值=1
如果再不够用,就再次调用:
p = (char*)realloc(p, 10+100*n++); //这时n=2了,n++后=3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浪迹天涯的流星
2016-05-31 · 知道合伙人教育行家
浪迹天涯的流星
知道合伙人教育行家
采纳数:8923 获赞数:81533
对于基本办公软件比较擅长。

向TA提问 私信TA
展开全部
realloc在a已经分配好的情况下,用于扩展内存。
int **a;
a = (int **)malloc(10 * sizeof(int *));
for (int i = 0; i < 10; i ++)
a[i] = (int *)malloc(200 * sizeof(int));

malloc是分配连续内存的方法:
int **a;
a = (int **)malloc(10 * sizeof(int *));
a[0] = (int*)malloc(10*200*sizeof(int));
for (int i = 1; i < 10; i ++)
a[i] = a[0] + i * 200;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式