malloc 失败的可能原因是前面存在内存超界访问。比如说前面有double *a=(double*)malloc(10*sizeof(double)); a[10]=10;那么再用malloc时就可能会出问题。
在我的代码中a[11]=11;之后使用malloc仍不会出问题,但是a[20]=20;再使用malloc 就出问题了。
解决此类问题方法之一是在程序调试阶段判断是否存在访问超界的情况,在赋值或者访问数组前先判断下标的大小是否超出了数组分配的实际大小。

Posted on 2008-11-18 10:28 邹敏 阅读(4963) 评论(1)  编辑 收藏 引用

Feedback

# re: malloc 分配内存失败的原因之一  回复  更多评论   

2009-09-01 16:28 by sadfasf
thanks

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理