VS2015 调试代码时写入位置时发生访问冲突

前一段时间写一个工程,调用自己写的一个库,编译成功,执行时发生了访问冲突;

当时觉得很好奇,这个库不是第一次调用,之前调用过很多次都没有问题,偏偏这次出现了访问冲突;

解决的思路如下:

1. 检查代码,看一下调用接口的代码是否写错, 同时可以通过中断,在vs的调用堆栈窗口查看中断出现的具体步骤,看不懂的就一层一层往外看,直到找到能看懂的代码;

我这里因为调用的接口不多,直接定位了问题出现的地方,但还是不明白发生的原因;

2. 查看别人的解决思路:这里看了几篇博客,这样的访问冲突一般都出现在对未赋值的变量进行读取或者调用时,如https://blog.csdn.net/xiao_mingzz/article/details/79748784 , 我这里库外没有出现这种情况,唯一能发生对未赋值变量读取出错的就是库里的某些变量调用;

3. 回到生成调用库的工程,这算是我这里的一个比较方便的地方,因为库是自己生成的,所以可以查看源码;在源码里查看时,我直接运行源码的工程是没有错的,但是在另外的文件里调用就是出错,我采用了比较笨的方法,再源码里用cout进行输出,一步步定位具体中断出现的代码;后来发现是一个vector变量wins,这里的vector按照推算来讲,是绝对不可能是空的,所以我就直接调用了wins[0],即调用了第一个参数,但实际这里为0 ;后来又查了以下,发现是中间一个变量值出现错误,再接口传入时出错,导致后期vector为空(充分意识到判空的重要性);

至此,问题解决完毕;

总结下来就是先定位问题,看看有没有未赋值就访问,或指针为空就访问的情况;

遇到一个讲解的很清楚的博客,从内存看访问冲突的问题,很好理解:

https://typecodes.com/cseries/pointermemaccess0xC0000005.html

后面遇到新的可能情况再补充~~~

 

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值