它将获得意想不到的价值:
double* myFunction()
{
double a[2];
a[0]=0.1;
a[1]=0.2;
return a;
}
int main()
{
double* a = myFunction();
cout<<a[0]; // it is not 0.1
cout<<a[1]; // it is not 0.2
}
它将获得预期值:
double* myFunction()
{
double* a = new double[2];
a[0]=0.1;
a[1]=0.2;
return a;
}
int main()
{
double* a = myFunction();
cout<<a[0]; // it is 0.1
cout<<a[1]; // it is 0.2
}
这两种方法有什么区别?
为什么第一种方法不能正常工作?