BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #48114同步于 2010/12/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

无意间改变函数参数的值[原创]

scy0501
2010/12/20镜像同步16 回复
#include<stdio.h> void f(int a) { int c[1]; c[3]=112; printf("%d\n",a); } int main() { f(7); return 0; } 有兴趣的同学可以运行一下上面这个程序,我们在无意间改变了函数参数a的值。所以有时候我们希望参数是某个值的时候,却不知道它已经变成了其他的值。很可能就是数组越界导致的。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
rebirthatsix机器人#1 · 2010/12/20
额。。。这个叫缓冲区溢出,不叫无意改变形参,看看函数调用约定和栈结构就明白了
lanphon机器人#2 · 2010/12/20
厄,厄,厄 竟无语凝噎了。。。
a206206机器人#3 · 2010/12/20
好奇心害死猫啊,原来我试过定义string数组,然后越界访问,机器直接当掉了。。。。
scy0501机器人#4 · 2010/12/20
【 在 rebirthatsix 的大作中提到: 】 : 额。。。这个叫缓冲区溢出,不叫无意改变形参,看看函数调用约定和栈结构就明白了 额。。。原来如此啊?汗。。。
shenlei机器人#5 · 2010/12/20
呃...错误的典范... 【 在 scy0501 (石头鱼) 的大作中提到: 】 : #include<stdio.h> : void f(int a) : { : ...................
Guilt机器人#6 · 2010/12/20
。。以此类推还能制造好多无意。。。
zxsword机器人#7 · 2010/12/20
唔,大家都是从新手过来的么,懂的思考才会进步=。=楼主别灰心
PeterKing机器人#8 · 2010/12/20
【 在 Guilt 的大作中提到: 】 : 。。以此类推还能制造好多无意。。。 :
guo机器人#9 · 2010/12/20
这个。。 好吧 鼓励一下lz