推 ericinttu:推一下 06/01 09:41
※ 引述《kingp (我很窮)》之銘言:
: 請問一下 由於我的一維陣列相當大
: 因此選擇用動態一維陣列來做 以下是我的程式碼
: 大致上是參考GOOGLE的一些範例
: int m=0, A=220000;
: int *M = new int [A];
: for(m=0; m<A; m++);
: {
: M[m] = new int[A] ; <-------- ERROR
new int[A] => int *
M[m] => int
這個錯誤訊息和大小無關, 你的 type 根本不對
: }
: for(m=0; m<A; m++);
: {
: delete [] M;
: }
: delete M;
: 不過compiler會顯示 "無法由 'int *' 轉換為 'int' "
: 請問我的問題出在哪呢??
你要把一維當成二維用, 那你的一維長度就是二維的維度乘積
那兩個為了 new 和 delete 而寫的 for 是不必要的
假設圖的維度是 row 和 column
則 int A = row * column
以原本的 (x,y) 對應到一維座標是
M[y][x] === M[y*column+x]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.96.116.187
※ 編輯: legnaleurc 來自: 175.96.116.187 (05/31 22:23)