C++访问冲突崩溃
C++ access violation crash
当我尝试访问此特定指针时,应用程序崩溃并显示c0000005访问冲突错误。
我如何才能捕捉到这个错误并防止它像在C#中那样关闭进程;挡块。或者,在使用之前,我如何检查是否拒绝访问该内存区域?
示例:
MyClass** a = (MyClass**)(0x12345678);
a[0]->b = 1;
我正在访问一个指针表,并设置该类的一个成员的值。这确实有效,但问题是"0x12345678"并不总是在该区域加载类。地址有一个值,但它没有指向正确的内存区域,也没有保存值0。
请记住,这是一个加载到应用程序中的DLL,我不再有它的源代码。因此,我尝试动态地设置应用程序的设置。
您可以使用结构化异常处理来捕获这类错误。特别是EXCEPTION_ACCESS_VIOLATION
的过滤器。
只要确保你在接受异常时知道自己在做什么:如果你的垃圾地址指向一个保护页,你可能会看到这里描述的行为。
相关文章:
- 写入位置0x0000000C时发生访问冲突
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- C++尝试深度复制唯一指针时出现内存访问冲突
- C++ 中动态二维数组的访问冲突
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- Windows C++程序中的访问冲突是否总是立即崩溃
- GetMonitorBrightness() 因访问冲突而崩溃
- 中止回复崩溃并出现访问冲突
- MEMCPY 后崩溃:访问冲突读取位置
- 创建对象时发生SSE访问冲突崩溃
- C++访问冲突崩溃
- Writefile导致崩溃,并导致访问冲突
- 在c++中对STL List使用push_back()会导致访问冲突,崩溃
- 访问计算机指针时发生访问冲突(c系统异常代码:c0000005),导致应用程序崩溃
- c++, WIN32, WndProc到成员函数崩溃(访问冲突0x88)
- 与JNI崩溃服务器JVM的访问冲突
- 通过WinAPI套接字连接到蓝牙设备时崩溃(读取位置0x00000004时发生访问冲突)