分配动态数组空间时有时成功有时失败是什么原因?

 我来答
金色潜鸟
2018-01-27 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5696万
展开全部
cd = (char *) malloc(sizeof(char) * n);
如果要求的空间数值 n 太大,内存不够,则会失败。
如果 n 没有预先给定数值, 或给了 负值 ,则会失败。
如果 在循环语句中 做动态分配,cd 已分配过 一次,没有 free(cd) 释放,又再次分配,则会失败。
重复分配,无论增加空间或减小空间 可以 用 realloc() , 不用 malloc。
计算机资源共享,多程序都要用内存,当别的程序需要的空间增大时,剩余空间不够你的程序用时,也会失败。 所以分配时,要用返回值 监测 是否成功,并处理。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式