使用vs运行程序时我们有时候会看到这样的一个错误:“Stack around the variable XXX was corrupted”。导致该错误产生的原因一般是是访问了未分配的地址,内存越界造成的,越界写了不该写的内存区域。
示例:有如下程序:
#include <stdio.h>
#include <string.h>
int main()
{
char str[1] = { 0 };
strcpy(str, "hello world");
printf("str:%s\n", str);
return 0;
}
编译,运行,我们会发现程序报错了,如下图所示: