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

如题所述

char*buffer;\x0d\x0abuffer=(char*)malloc(initializesize);\x0d\x0abuffer=(char*)realloc(buffer,initializesize+addsize);\x0d\x0a一般做法是设定一个初始值,再设定一个追加值。\x0d\x0a比如:*p初始分配10个字符空间。\x0d\x0a当空间不够用的时候,每次增加20个字符空间。这样会增加效率。\x0d\x0a\x0d\x0a象你这样:初始p=(char*)malloc(10);\x0d\x0a当判断空间不够用的时候,重分配:\x0d\x0ap=(char*)realloc(p,10+100*n++);//n做重分配次数计数器,初值=1\x0d\x0a如果再不够用,就再次调用:\x0d\x0ap=(char*)realloc(p,10+100*n++);//这时n=2了,n++后=3
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网