【发布时间】:2013-06-14 22:13:02
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
int test(void)
{
int a=0,b=0;
char buf[4];
gets(buf);
printf("a:%d b:%d",a,b);
}
int main()
{
test();
return 0;
}
问题是为什么输入:aaaaa a 变成 97 而不是 b?从变量在 test 中声明的方式来看,当 buf 溢出时,它不应该先影响 b,然后再影响 a?
【问题讨论】:
-
你找到答案了吗?如果你这样做了,你应该将最有帮助的标记为选定的答案。
标签: c stack buffer-overflow