首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中出现内存不可读写异常,怎么不让这个错误终止程序

2013-01-07 
C语言中出现内存不可读写错误,如何不让这个异常终止程序?C语言中出现内存不可写错误,如何不让这个异常终止

C语言中出现内存不可读写错误,如何不让这个异常终止程序?
C语言中出现内存不可写错误,如何不让这个异常终止程序?
     例如:obj->payload[i]=0; 出现内存不能写错误。

        qtxxx.exe 中的 0x00bf69ea (ttxxx.dll) 处未处理的异常: 0xC0000005: 写入位置 0xfeeefef2 时发生访问冲突

xp系统下面。VS2008开发。

如何解决这个问题?
[解决办法]
这么严重的错误还想继续跑?你要做的应该是解决这个错误而不是隐藏起来吧
[解决办法]


[解决办法]
payload没有分配空间就直接用了?
[解决办法]
这么严重的问题就算不终止程序,跑到后面肯定也会出问题导致crash
[解决办法]
楼主想干什么呢?这里出错了,后面执行的每一步都可能是错的,如果让程序不退出有什么意义呢
[解决办法]
发现问题后,越早纠正损失越小。
[解决办法]
异常终止程序  是对你os 的一种保护,难道你想直接 死机
[解决办法]
__try{}
__except(1)
{}

建议你还是把错误找出来吗吧

62708807
职业C/C++交流群
以前很火的,后来被群主清空了
现在找人
[解决办法]
引用:
to rocktyt2  zhao4zhong1 :不知道如何解决啊。     
 to:turingo  to xumaojun  

源程序是这样子的 :void profile_clear_all(rofile *obj)
{
int i;
for (i=0;i<PROFILE_MAX_PAYLOADS;i++){
obj->payload[i]=0;……

调试一下 红色部分是否为有效内存地址 如果不是那么就证明你的内存空间有问题
1>你没有申请
2>你申请了 但是被其他模块释放了
3>你释放了 却再次使用
基本上就是这个原因
[解决办法]
要死的人你是救不活的,要是的程序你是不能让它继续跑的。
[解决办法]
引用:
引用:to rocktyt2  zhao4zhong1 :不知道如何解决啊。     
 to:turingo  to xumaojun  

源程序是这样子的 :void profile_clear_all(rofile *obj)
{
int i;
for (i=0;i<PROFILE_MAX_PAYLOADS;i++){……


obj 的内存被释放了吧
[解决办法]
1,你确定你那个内存分配成功了没??
2,你的内存是否已经被你释放掉了,然后没有赋空值,然后成为野指针了?

[解决办法]
void profile_clear_all(rofile *obj)//传进来的是不是有效的内存?野的?还是空的?
{
    int i;
    for (i=0;i<PROFILE_MAX_PAYLOADS;i++)
    {
        obj->payload[i]=0; 
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
    rofile* pTest = new rofile;//这样子就不会是问题...
profile_clear_all(pTest);
if (NULL != pTest)
{
delete pTest;
pTest = NULL;
}
}

------解决方案--------------------


崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

[解决办法]
不能重现的严重错误是常见的,处理办法是结束线程,结束当前session,线程池会自动补上,或是重新启动线程重新处理当条任务
具体去看c++异常原理照做一个就行了

[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

[解决办法]
用信号量处理



热点排行