LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1964|回复: 15

malloc失败,是否返回一个NULL pointer?

[复制链接]
发表于 2004-12-18 17:59:18 | 显示全部楼层 |阅读模式
根据malloc的说明是应该返回空指针,但是在程序里分配大内存却直接segmentation fault了,为什么? 程序并未access内存
发表于 2004-12-18 18:02:19 | 显示全部楼层
代码呢?
 楼主| 发表于 2004-12-18 18:05:57 | 显示全部楼层
void* ptr = malloc( 10000000 );
发表于 2004-12-18 20:56:22 | 显示全部楼层
是没有足够大的内存块么?
发表于 2004-12-18 21:05:35 | 显示全部楼层
malloc 失败,确实返回一个 NULL 指针。
发表于 2004-12-18 21:19:21 | 显示全部楼层
关键是他这里说的是没有返回就直接segmentation fault了。
发表于 2004-12-19 13:55:51 | 显示全部楼层
Post by zhhhuang
void* ptr = malloc( 10000000 );

最好给出上下文或者详细的错误提示。
发表于 2004-12-19 14:04:53 | 显示全部楼层
可能堆中没有足够的连续空间了
分配大内存时,进入其他进程的空间,产生错误
发表于 2004-12-19 14:22:32 | 显示全部楼层
不对啊,10000000 也就 10MB 左右的大小,堆不只这么小啊
发表于 2004-12-19 14:38:44 | 显示全部楼层
是40M吧........
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表