#include <iostream>
using namespace std;
int *fun1(){
int a[]={1,2,3,};
int b=5;
return a;
}
int *fun2(){
int b=5;
return &b;
}
int main(){
int *p=fun1();
int *q=fun2();
cout<<p[0]<<" "<<p[1]<<" "<<p[2]<<endl;
cout<<*q;
return 0;
}
1 2 3
4199040
函数的变量在栈上分配空间,为什么fun1()返回一个数组首地址,数组中的元素没有被回收,而fun2()返回的b的地址被回收了呢