2
有沒有簡單的方法將int[n][n]
類型的實例轉換爲int**
? 例如,代碼如何在C++中將int [] []轉換爲int **
void foo(int** arr) {
// ...
}
int X[10][10];
memset(X,0,10*10*sizeof(int));
foo(X); // error: cannot initialize a parameter of type 'int **' with an lvalue of type 'int [10][10]'
一個簡單的解決辦法是,當然,有
int** X=new int*[10];
for (int i=0;i<10;++i) X[i]=new int[10];
但這個有點計數器的想法,在C++中的數組是隻是指針(其1-暗淡陣列當然是)。
當前函數「foo」沒有辦法知道該數組是10x10 - 我認爲這是行嗎? – Jimmy
'int [100]'和'int [10] [10]'不是一回事。 –
這對你有幫助嗎? http://stackoverflow.com/questions/1584100/converting-multidimensional-arrays-to-pointers-in-c –