读书人

回来指向局部变量的指针很安全哪

发布时间: 2012-07-23 09:42:19 作者: rapoo

返回指向局部变量的指针很安全哪
下面一段程序:
int main(void){
int *j=getPInt();
pad();
pad();
pad();
pad();
pad();
printf("j points to a local location,it is%d",*j);//输出100;
}

void pad(void){
int a=0;
}

int *getPInt(void){
int i=100;
return &i;
}
我以为不会输出是100,因为getPInt函数返回,它的局部变量i那块儿内存也就被弹出栈空间。
我在pad函数里定义变量,想继续堆栈把那块儿“100”的内存给覆盖掉。
为什么还会是100呢?
我只是想验证返回指向局部变量的指针不保险,可发现它很安全那!
小弟新手,言辞愚蠢之处还请指教。-.-


[解决办法]
不是不安全,而是根本就是一个错误!

一个错误什么时候会暴露给初学者知道?天知道.

读书人网 >C语言

热点推荐