数组访问越界的调试现象总结

下面两行代码是数组越界访问,将可能导致程序崩溃。

int narray[x];

narray[y] = 10;

这里x和y都是常数。例如

int narray[5];

narray[8] = 10;

现象总结如下:

当y==x或y==-1时,debug调试运行会报错:

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

但是y>x或y<-1时却不报错。

当y==x时,release版会挂掉,但没能生成minidump。

有时,数组访问越界在release版不会当时挂掉,程序还一直能运行。很奇怪。

你可能感兴趣的:(数组访问越界的调试现象总结)