程序跳转到 mainret = main(argc, argv, envp); 抛出异常Unhandled exception

本文探讨了程序中出现的访问异常问题,并提供了排查此类错误的思路。主要从指针未初始化及非法内存访问两方面入手,帮助读者理解并解决这类问题。

在项目中遇到这种异常:程序跳转到 mainret = main(argc, argv, envp); 抛出异常,Unhandled exception at 0x***** in **.exe: 0xC0000005: Access violation reading location 0x00000004.。并且程序有时候正常有时候崩溃。这种错误经常需要花费很长时间去找这个错误。

总结一下我遇到这种错误时的思路:

1,访问异常,一般很有可能是指针访问异常。考虑指针有没有初始化,在类的构造函数里面有没有初始化成员指针。因为如果不初始化指针,指针的值是不确定的。因此你在程序中使用if(指针==NULL),那么你就可能会很疑惑为什么程序有时候正常有时候崩溃。因为每一次编译,指针的值都不一样。没有初始化的话,在程序中用是否为NULL判断是不对的。

2,有可能在指针没有分配内存空间的时候,就用该指针去访问一些相关的变量。会导致错误。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值