在项目中遇到这种异常:程序跳转到 mainret = main(argc, argv, envp); 抛出异常,Unhandled exception at 0x***** in **.exe: 0xC0000005: Access violation reading location 0x00000004.。并且程序有时候正常有时候崩溃。这种错误经常需要花费很长时间去找这个错误。
总结一下我遇到这种错误时的思路:
1,访问异常,一般很有可能是指针访问异常。考虑指针有没有初始化,在类的构造函数里面有没有初始化成员指针。因为如果不初始化指针,指针的值是不确定的。因此你在程序中使用if(指针==NULL),那么你就可能会很疑惑为什么程序有时候正常有时候崩溃。因为每一次编译,指针的值都不一样。没有初始化的话,在程序中用是否为NULL判断是不对的。
2,有可能在指针没有分配内存空间的时候,就用该指针去访问一些相关的变量。会导致错误。
本文探讨了程序中出现的访问异常问题,并提供了排查此类错误的思路。主要从指针未初始化及非法内存访问两方面入手,帮助读者理解并解决这类问题。
2884

被折叠的 条评论
为什么被折叠?



