我有一個堆棧溢出在堆棧上分配一個巨大的矩陣(我同意:它是愚蠢的分配在那裏),我寫下面的代碼,因爲我要與標指數墊來訪問矩陣的元素[X] [Y]新矩陣[N] [N]失敗
double (*mul1)[N][N];
mul1 = new double[N][N];
我收到一個錯誤:
error C2440: '=' : cannot convert from 'double (*)[1000]' to 'double(*)[1000][1000]'
爲什麼我不能分配新的一個二維數組?
這實際上是從問題有人鏈接爲重複略有不同,因爲(我認爲),N是在編譯時已知。你可以用'double(* mul1)[N];'來做到這一點,並且避免了在嵌套數組的鏈接問題中出現的指針間接。 (關鍵是'''''''''''''''和'new T []''''''''''返回一個指向第一個元素的指針)。或者你可以寫'unique_ptr mul1(new double [N] [N ]);'並得到自動清理。 –
entheh
2013-03-23 11:28:56