首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-07-23 
返回指向局部变量的指针很安全哪下面一段程序:int main(void){int *jgetPInt()pad()pad()pad()pad()

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

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

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

热点排行