有沒有人請解釋這個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