往往我们定义的局部变量,或者形参都会存放在栈区。一般不要返回局部变量地址。
实例如下:
#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
请按任意键继续. . .