现在的位置: 首页 > 综合 > 正文

Run-Time Check Failure #2 – Stack around the variable ‘buf’ was corrupted

2018年08月04日 ⁄ 综合 ⁄ 共 475字 ⁄ 字号 评论关闭

Run-Time Check Failure #2 - Stack around the variable 'buf' was corrupted

 

昨天这个问题缠绕了我一个下午。也许是这几天累了,一直没找到问题根本原因,不过趴下睡一觉,就解决了。

这句话的意思是:运行时检测失败#2-在buf附近的栈遭到破坏。

其实主要的原因是对buf越界访问了。解决办法是扩大buf栈的空间,就解决了。

我在网上也查过一些类似的文章:

说这是vs的新功能,其实这也不是什么新功能,只是我们一直不注意而已。在vs的项目属性-配置属性-c/c++-代码生成选项中有一个 基本运行时检测(/RTC1, equiv. to /RTCsu)。如果该项选默认的话,在debug下编译运行没有什么问题,但在Release下编译运行还是会出错的。所以最好的办法不是把该项给去掉他,给而是给buf栈分配足够的空间来存放数据,并确保你的数据没有溢出或确保你没有越界访问。

这个也可以看下:

http://ankorzhang.blog.163.com/blog/static/118377343200910261185576/

抱歉!评论已关闭.