返回指向局部变量的指针很安全哪
下面一段程序:
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呢?
我只是想验证返回指向局部变量的指针不保险,可发现它很安全那!
小弟新手,言辞愚蠢之处还请指教。-.-