当前位置: 代码迷 >> 综合 >> C++ 不要返回数据的引用~栈区
  详细解决方案

C++ 不要返回数据的引用~栈区

热度:97   发布时间:2024-02-07 09:24:13.0

往往我们定义的局部变量,或者形参都会存放在栈区。一般不要返回局部变量地址。

实例如下:

#include<iostream>
using namespace std;//栈区数据注意事项 --不要返回局部变量地址
//栈区的数据由编译器管理开辟和释放
int* func(int b) {//形参数据也会放在栈区b = 100;int a = 10;//局部变量,存放在栈区,栈区的数据在函数执行完后自动释放return &a;//返回局部变量地址
}int main()
{//接受func函数的返回值int* p = func(1);//第一次编译器给做了数据保留cout << *p << endl;//第二次这个数据就不保留了,打印乱码cout << *p << endl;system("pause");return 0;
}

结果:

10
8459515
请按任意键继续. . .

 

  相关解决方案