C语言中用动态数组储存一个长度未知的字符串,应该怎么使用malloc和realloc函数?

 我来答
友油妮薅
2018-02-01 · 致力于回答相关问题。
友油妮薅
采纳数:109 获赞数:1222

向TA提问 私信TA
展开全部
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式