您的位置:首页 > 其它

stack around the variable was corrupted

2009-11-28 21:28 615 查看
vs2008下c++数组如果越界会发生“stack around the variable was corrupted”诸如此类的错误,如果有朋友在debug时不慎发生此错误,请检查您代码中的数组,看看在使用时有没有越界。

今天我在写oj评判模块的时候使用多线程评判时遇到一个怪问题,线程数大于12以上就会当掉,思来想去没有毛病,而且我的线程重量不是很大,所以还不至于程序栈区真的溢出,去网上看了看,发现数组越界有很大可能(还有一个原因是使用直接定义的变量太多,导致真的栈溢出,如果您的程序体积比较大,也可适当考虑一下这个原因,不过10M的默认栈区不是很容易达到的,一般还是数组越界问题),仔细查看之下,发现我在以前测试的时候启动的是10个线程,所以在存储线程ID和HANDLE时直接写了HANDLE threadHandles[10]类似的语句,而一旦启动较多的线程如20、70.。。。。便会发生栈区的错误,改成动态数组后,问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: