小编Brl*_*lja的帖子

是否有任何方法可以防止应用程序在堆损坏时崩溃? - C编程语言

有时在执行中我在尝试释放内存时在VS2010中收到此错误消息:

Windows在[APPNAME] .exe中触发了断点.

这可能是由于堆的损坏,这表示[APPNAME] .exe或它已加载的任何DLL中的错误.

这也可能是由于用户在[APPNAME] .exe具有焦点时按下F12.

输出窗口可能包含更多诊断信息.

这意味着堆或指针有问题.

我的问题是,当我的应用程序构建为发行版时,此错误会崩溃.

此外,这只是一个更大应用程序的模块,当崩溃的时候,这种情况发生了变化.

我希望能够处理这个错误.

来自msdn的"免费":

如果在释放内存时发生错误,则会根据操作系统中有关故障性质的信息设置errno.有关更多信息,请参阅errno,_doserrno,_sys_errlist和_sys_nerr.

有一个errno_t _get_errno( int * pValue );返回错误代码的函数.

如果我按上面显示的错误消息继续按此函数返回错误代码.使用此代码,我可以检测错误,创建调用堆栈并轻轻退出我的函数.

是否有任何编译器开关或什么来防止应用程序在免费失败时崩溃并允许我以我的方式退出?

c memory heap free

1
推荐指数
1
解决办法
2241
查看次数

标签 统计

c ×1

free ×1

heap ×1

memory ×1