当前位置: 技术问答>linux和unix
segmentation fault 有没有可能是是因为内存申请失败?
来源: 互联网 发布时间:2015-04-01
本文导语: 我的程序做了一个循环,比如说15000次,当运行到4000次的时候就产生segmentation fault,异常退出. 一般情况下segmentation错误发生在delete上,删除了不应该删除的内存块. 但是我的程序运行到了四千多次,应该不存在delete错误....
我的程序做了一个循环,比如说15000次,当运行到4000次的时候就产生segmentation fault,异常退出.
一般情况下segmentation错误发生在delete上,删除了不应该删除的内存块.
但是我的程序运行到了四千多次,应该不存在delete错误.那么我猜是不是我的程序new的时候或者malloc的时候,发现没有足够内存了而产生的错误呢?
一般情况下segmentation错误发生在delete上,删除了不应该删除的内存块.
但是我的程序运行到了四千多次,应该不存在delete错误.那么我猜是不是我的程序new的时候或者malloc的时候,发现没有足够内存了而产生的错误呢?
|
应该是你访问了不该访问的内存
|
new不会,要不然要set_new_handler做什么?除非你已经把内存搞的乱七八糟了。
delete会,如果你的指针指向了不该指向的地方。
delete会,如果你的指针指向了不该指向的地方。
|
new 操作不会引起段错误, 除非你没有检查返回值
|
引起段错误的原因很多,贴出你的代码瞅瞅先