首页 > 代码库 > VS2010 基本运行时检查 和“Stack around the variable XX was corrupted”之间的关系

VS2010 基本运行时检查 和“Stack around the variable XX was corrupted”之间的关系

下午在重新整理一份代码,中间遇到这么一个问题:要么出现内存访问冲突,要么出现“Stack around the variable XX was corrupted”错误。

很是恼火!

先出现的是“Stack around the variable XX was corrupted”错误,网上查到的第一种解决方案是让在“项目-属性-配置属性-C/C++-代码生成中”,将基本运行时检查设置成默认值,原来的值为“两者(/RTC1,等同于 /RTCsu) (/RTC1)”。

修改后重新生成,错误是不见了,但是在另外一个按钮事件里弹出一个“0x0000005:内存访问冲突”,这个在修改配置前是没有报错的。无奈修改回两者,然后内存不冲突了原先那个错误又出现了。

最后找到的解决方案参照“http://bbs.csdn.net/topics/340143691”这篇帖子,是程序中的一个字符数组大小少算了一个“\0”。把发生错误的那个数组空间+1就ok了。

后面想继续补充下vs中基本运行时检查(basic runtime check)的知识。

1、http://msdn.microsoft.com/en-us/library/8wtf2dfz.aspx

2、http://blog.csdn.net/brighttown/article/details/4183238