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

看板b93902HW作者 (00010110110001101010100)時間18年前 (2005/12/10 01:10), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《greydust (灰)》之銘言: : ※ 引述《Favonia (00010110110001101010100)》之銘言: : : 二為陣列不可能轉型成 int** : : 所以你要問的應該是記憶體分配有沒有連續?xD : 其實是可以轉的...像這樣寫: : #define N xxxxx : int a[N][N]; : int **b = (int **)a; ........ 這樣根本不叫轉吧 囧 乾脆傳 void* 算了 : 不過後果...嗯,相當微妙 :p : 其中最妙的地方就是 sizeof(int **)=8 : 這個要讀還是可以讀的出來啦...只是麻煩 : 嗯,其實講清楚一點我是不知道他是傳"一個二維陣列" : 還是傳"一個指標的一維陣列",或是其他種的傳法 : 如果是傳一個二維陣列,理論上a[0][0]的位址+4就會變成a[0][1]... etc : 如果是指標的一維陣列,那a[0]的位址+4就會變成a[1] : 這相差非常遠 Orz : 而且int **Input 這樣傳,不能直接寫Input[i][j] 囧rz 用 void* 傳也不可以寫 input[i][j] ----- int a[5][5] 和 int** a 是完全不同的結構啊 Orz 所謂可以轉都是語法強制轉型吧 ~____~ 跟 FILE* 硬轉成 double* 一樣沒有意義... -- Favonia --- 我的個人版,歡迎參觀 :D -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.41

12/10 01:13, , 1F
是這樣沒錯啦.... Orz
12/10 01:13, 1F
文章代碼(AID): #13cRfjvj (b93902HW)
文章代碼(AID): #13cRfjvj (b93902HW)