我試圖做一個動態分配的具有可變大小的二維數組,但我不知道爲什麼如果我創建自己的常量值它不會編譯:在C++中的一個類的方法中傳輸動態分配的矩陣
const int oConstanta=N+1;
int (*m)[oConstanta]=new int[oConstanta][oConstanta];
但是,當我使用一個正常的常量,如括號之間的1000,它編譯成功。
const int oConstanta=N+1;
int (*m)[1000]=new int[1000][1000];
有沒有人知道這個的原因?
PS:我知道:
int **m=new int*[oConstanta];
for(i=1;i<=N;i++)
{
m[i]=new int[oConstanta];
init(m[i]);
}
能解決我的問題,但我想了解爲什麼我以前的方法是一個壞主意。
第一個不是標準的C++。 – 2012-03-21 20:10:27
什麼是'N'? @smarinov:取決於'N',是的。 – 2012-03-21 20:11:12
請勿使用指針。改用'std :: vector>',最好寫一個包裝類'Matrix'。 –
2012-03-21 20:11:18