Re: [作業] 演算法HW3的int **Input

看板b93902HW作者 (灰)時間18年前 (2005/12/09 23:21), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/4 (看更多)
※ 引述《Favonia (00010110110001101010100)》之銘言: : ※ 引述《greydust (灰)》之銘言: : : 請問這個東西傳進來的是? : : 是單純一個二維陣列轉成int **的型態丟進來 : : 還是是丟array of pointer進來? : : 感謝 : 二為陣列不可能轉型成 int** : 所以你要問的應該是記憶體分配有沒有連續?xD 其實是可以轉的...像這樣寫: #define N xxxxx int a[N][N]; int **b = (int **)a; 不過後果...嗯,相當微妙 :p 其中最妙的地方就是 sizeof(int **)=8 這個要讀還是可以讀的出來啦...只是麻煩 嗯,其實講清楚一點我是不知道他是傳"一個二維陣列" 還是傳"一個指標的一維陣列",或是其他種的傳法 如果是傳一個二維陣列,理論上a[0][0]的位址+4就會變成a[0][1]... etc 如果是指標的一維陣列,那a[0]的位址+4就會變成a[1] 這相差非常遠 Orz 而且int **Input 這樣傳,不能直接寫Input[i][j] 囧rz : --- 以下是個人意見 --- : 這個時間應該沒有影響很多吧 @@" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.60

12/09 23:32, , 1F
助教給的是可以用 [][] 的啊 Orz 你這種乾脆傳 void* 算了
12/09 23:32, 1F
文章代碼(AID): #13cQ3-v2 (b93902HW)
討論串 (同標題文章)
文章代碼(AID): #13cQ3-v2 (b93902HW)