我是seamaster,今天和大家聊一下有关溢出的问题。就算是抛砖引玉吧。不到之处,请指正。
这是一段vc++代码,注意在main函数内部定义了字符数组output,大小是12字节,而下面一句拷贝则将20个字节的字符放了进去,结果就出现了溢出现象,大家可以看一下左边的堆栈图。如果暂时看不懂,可以先学点堆栈的基础知识。让我们到vc++中看看。
# include <stdio.h>
# include <string.h>
char name[]="abcdefgh123456784321";
int main()
{
char output[12];
strcpy(output,name);
for(int i=0;i<12&&output[i];i++)
printf("\\0x%x",output[i]);
return 0;