返回信息流#include<stdio.h>
void f(int a)
{
int c[1];
c[3]=112;
printf("%d\n",a);
}
int main()
{
f(7);
return 0;
}
有兴趣的同学可以运行一下上面这个程序,我们在无意间改变了函数参数a的值。所以有时候我们希望参数是某个值的时候,却不知道它已经变成了其他的值。很可能就是数组越界导致的。
这是一条镜像帖。来源:北邮人论坛 / cpp / #48114同步于 2010/12/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
无意间改变函数参数的值[原创]
scy0501
2010/12/20镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 rebirthatsix 的大作中提到: 】
: 额。。。这个叫缓冲区溢出,不叫无意改变形参,看看函数调用约定和栈结构就明白了
额。。。原来如此啊?汗。。。
呃...错误的典范...
【 在 scy0501 (石头鱼) 的大作中提到: 】
: #include<stdio.h>
: void f(int a)
: {
: ...................