我写了以下一段代码
#include <iostream>
using namespace std;
void temp (int * x)
{
x=new int [2];
x[0]=1;
x[1]=2;
}
int main()
{
int *ptr;
temp(ptr);
cout<<ptr[0]<<endl;
cout<<ptr[1]<<endl;
return 0;
}
temp
运行它会产生 seg 错误,那么在函数本地函数内部发生的内存分配是否是函数?从返回时内存被释放temp
?我知道,要解决这个问题,我需要将指针传递给指针ptr
,但是,为什么这东西到底行不通?