有没有人请解释这个C++代码有什么问题? 我可以看到你不能在C++中返回一个数组(就像其他语言一样),所以我返回一个指针。我了解到,有一个在指针设置为“myArray的”的地址是没有意义的 - 因为“myArray的”已经是一个地址(第一项)C++ n00b学习指针,试图返回一个指向数组的指针
我预计产量为1,2,3,4
不同(在线)的编译器,我及彼不同怪异的结果,其中包括:
- 1,4,-993994160,32767
- 1,-1077229596,-1077229588,1075514957
- 1, 2,3,3(如此接近)
所以这里是我的狡猾代码:
#include <iostream>
using namespace std;
int* getArray(){
int myArray[] = {1,2,3,4};
int* pointerToArray = myArray;
return pointerToArray;
}
void printArray(int inputArr[], int length) {
for (int i = 0; i < length; i++) {
cout << inputArr[i] << ", ";
}
}
int main()
{
printArray(getArray(),4);
return 0;
}
您可以提供任何帮助,非常感谢!
在这种情况下,使用'std :: array'或'std :: vector'来代替C数组。 – Jarod42
而且你不能返回局部变量的引用。 – Jarod42
不要返回指向局部变量的指针。另外,学习使用'std :: vector'或'std :: array'。你会得到奇怪的结果,因为你在返回的函数中返回一个指向变量的指针,因此不再存在。你现在所面临的是 - 无论编译器如何给你。 – PaulMcKenzie