下面的代碼不編譯C++非常量爲const鑄造編譯錯誤
void aaa(const int **a) {
}
int *a[] = {new int[2]};
aaa(a);
我 「不能從轉換參數1 'INT [1]' 至「const int的*」 在VS2010和在GCC類似的錯誤
當我改變我的聲明:
int const *a[] = {new int[2]};
或
const int *a[] = {new int[2]};
它編譯,但我不明白爲什麼它不接受非const的變量聲明
也許'AAA(PA)'應該是' aaa(pa)' – bitstore 2012-02-24 15:33:47
@tinybit或者它的聲明應該是'int * pa;',調用後的使用應該是'* pa = 0;'。我將編輯修復我的答案中的代碼。感謝您發現這一點。 – 2012-02-24 16:44:36