2個月前我開始在大學學習C++,並試圖找出如何將動態二維數組(指向指針的指針)作爲輸入傳遞給函數參數。 我有這樣的動態二維數組:作爲輸入參數的指針(二維數組)的指針
int **p;
p = new int*[R];
for(i=0; i<R; i++)
p[i] = new int[C];
現在我想這個指針p傳遞給一個函數作爲輸入參數,使用常量。我的意思是我希望函數不能修改矩陣的元素。
我想這樣的:
void func(const int **p) {
}
,但我得到這個錯誤:
main.cpp:19:11: error: invalid conversion from 'int**' to 'const int**' [-fpermissive]
main.cpp:9:6: error: initializing argument 1 of 'void func(const int**)' [-fpermissive]
我tryied使用的typedef和它的作品,但它不是恆定的。 如果我做這樣的:
typedef int** abc;
void func(const abc p);
main() {
abc p;
...
func(p);
}
源編譯,但功能「FUNC」是能夠修改「P矩陣」的值;我希望p是一個輸入參數,它必須是隻讀的!
請問,我該如何傳遞一個指針指向一個標記元素爲只讀的函數?
預先感謝您的幫助和歉意,我的英語不好。
你能否也請給我一個簡短的解釋呢?非常感謝。 – PeppeDAlterio