<分区>
我有一个 C++ 代码。
int* func(int n) {
int* v= &n;
return v;
}
int main()
{
int* c = func(5);
int* k = func(9);
cout<<*c;
}
此代码返回 9 而不是 5。 但是,当我将 func 更改为
int* func(int n) {
int* v= new int(n);
return v;
}
这会按预期返回 5。第一个不起作用但第二个起作用的原因是什么?