stack around the variable was corrupted

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

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

转载于:https://www.cnblogs.com/hxf829/archive/2009/11/28/1659749.html

你可能感兴趣的:(stack around the variable was corrupted)