如果必须返回i,以下代码(func1())是否正确?我记得在某处读到返回对局部变量的引用时存在问题.它与func2()有什么不同?
int& func1()
{
int i;
i = 1;
return i;
}
int* func2()
{
int* p;
p = new int;
*p = 1;
return p;
}
Run Code Online (Sandbox Code Playgroud) 我在C++中遇到了关于指针的问题.代码是:
int * initArray() {
int a [2];
a[0] = 1;
a[1] = 2;
return a;
}
int main () {
int * b = initArray();
cout << b << "---" << *(b) << endl;
cout << b + 1<< "---" << *(b + 1) << endl;
}
Run Code Online (Sandbox Code Playgroud)
输出是
0021FC20---1
0021FC24---1431629120
Run Code Online (Sandbox Code Playgroud)
你可以看到值是错误的.
当我尝试将init数组代码放入main函数时,它正确运行.
你能告诉我的代码有什么问题吗?