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

函数回到局部栈变量指针的疑问

2013-01-21 
函数返回局部栈变量指针的疑问#includeiostreamusing namespace stdint * pp(int i){int piint* p1&

函数返回局部栈变量指针的疑问
#include<iostream>
using namespace std;

int * pp(int i){
int p=i;
int* p1=&p;
cout << p1 << endl;
return p1;
}
int main()
{
int x = 0;

int* p =  pp(x);

cout << p <<endl;

return 0;
}

不是说函数不能返回指向局部栈变量的指针吗?为什么值能正确返回?

#include <iostream>

using namespace std;

int * pp(int i){
int p=i;
int* p1=&p;
cout << *p1 << endl; //解引用显示
return p1;
}

int foo(int i) {
int x = i * 100 + 200;
cout << x << endl;
return x;
}

int main()
{
int x = 1;

int* p =  pp(x);

foo(100);//增加一个函数调用,确保栈覆盖掉。

cout << *p <<endl; //解引用显示

return 0;
}

热点排行