分配动态数组空间时有时成功有时失败是什么原因?
1个回答
展开全部
cd = (char *) malloc(sizeof(char) * n);
如果要求的空间数值 n 太大,内存不够,则会失败。
如果 n 没有预先给定数值, 或给了 负值 ,则会失败。
如果 在循环语句中 做动态分配,cd 已分配过 一次,没有 free(cd) 释放,又再次分配,则会失败。
重复分配,无论增加空间或减小空间 可以 用 realloc() , 不用 malloc。
计算机资源共享,多程序都要用内存,当别的程序需要的空间增大时,剩余空间不够你的程序用时,也会失败。 所以分配时,要用返回值 监测 是否成功,并处理。
如果要求的空间数值 n 太大,内存不够,则会失败。
如果 n 没有预先给定数值, 或给了 负值 ,则会失败。
如果 在循环语句中 做动态分配,cd 已分配过 一次,没有 free(cd) 释放,又再次分配,则会失败。
重复分配,无论增加空间或减小空间 可以 用 realloc() , 不用 malloc。
计算机资源共享,多程序都要用内存,当别的程序需要的空间增大时,剩余空间不够你的程序用时,也会失败。 所以分配时,要用返回值 监测 是否成功,并处理。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询