我正在尋找一種方法來訪問通過指針傳遞的多維數組。我在這裏跟着這個問題(Create a pointer to two-dimensional array)來創建我的數組和一個指向它的指針。我甚至可以將指針傳遞給函數,但是我不能使用指針來訪問數組值。訪問函數內部值的正確方法是什麼?訪問多維數組傳遞到函數
main.cpp中:
MyArrayGenerator theArrGen = MyArrayGenerator();
const int size = 9;
int generatorArray[size][size][10];
theArrGen.generateArray(size, generatorArray[size][size+1]);
在我的類中的方法:
void MyArrayGenerator::generateArray(int size,int* pointerToMultiDimArr)
{
int height = size + 1;
// this ptr points to the array address
int* ptr = pointerToMultiDimArr;
// not working:
ptr[1][1][1] = 123;
}
,這將引發的編譯器錯誤https://msdn.microsoft.com/de-de/library/fhexbxk9.aspx至極意味着指示器未聲明爲陣列。
我想我的方法參數需要改變,因爲它需要一個指針,並不知道它將是一個數組。我的問題是:方法參數應該如何顯示,以及在該方法之後如何訪問我的方法中的數組。後來我想用戶輸入的多維數組的大小和
const int size = 9;
只是一個佔位符
爲什麼你把它標記爲* C *? –
抱歉,認爲這個問題在兩者之間可以互換。刪除了C標籤。 – TheCell
帶類的語言是C++,而不是C,並且沒有多維數組。指針甚至不是一維數組。 – Olaf