C++ 返回自动变量的地址的误区

来源:互联网 发布:mac重装系统找不到硬盘 编辑:程序博客网 时间:2024/04/28 02:53

 

class test{private: char *Name;public: void setName(char *Name) {     this->Name=Name; }  void showName()  {      cout<<"名字为:"<<Name<<endl;  }};

test* getAddress(){     test t; t.setName("比尔盖茨");     return &t;//这里返回的是一个自动变量的地址.所以该地址的有效区域在该函数内}
int main(){test *t=getAddress();t->showName();//返回后调用地址指向本身的方法..所以打印出来的不是“比尔盖茨”system("pause");}//所以我们应该改写成..
先执行以上的方法试试.........
test getAddress(){test t;t.setName("比尔盖茨");return t;}
方法有很多种.不多写



 

原创粉丝点击