函数返回指针为局部变量的问题,谁教我一招吧
// 以如下程序为例:#include <iostream>
using namespace std;
const int array_size = 10;
int * f()
{
int A[array_size];
for(int i = 0; i < array_size; i++)
{
A[i] = i * 10;
}
return A;
}
int main()
{
int *p = f();
cout << p[array_size - 1] << endl;
return 0;
}
编译时只是有一个警告:“warning C4172: returning address of local variable or temporary”
输出结果是90,不是应该出错才对吗? 为什么局部变量也能返回? 局部变量是什么时候释放的?谢谢。。