[問題] double point 指標的位置

看板C_and_CPP (C/C++)作者 (3.7沒輸過有跳過)時間13年前 (2012/09/14 18:41), 編輯推噓1(1016)
留言17則, 13人參與, 最新討論串1/1
請問一下,我宣告一個5*3的double point int **X 利用監看式觀察X[1]的address 並將他轉成int 也就是觀看(int)X[1] 和(int)X[2] 結果(int)X[1]=3878792 (int)X[2]=3878864 這兩個值差了72 請問這個72是怎麼來的? 環境是在VC2005底下 程式碼如下; int **X,i,different; X=(int**)malloc(5*sizeof(int*)); for(i=0;i<5;i++) { X[i]=(int*)malloc(3*sizeof(int*)); } different=(int)X[2]-(int)X[1]; ________________________________________________ different=72 why? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.245.65.183

09/14 19:20, , 1F
隔空抓毛!!!
09/14 19:20, 1F

09/14 20:47, , 2F
比爾蓋茲:問得很好 我請首席compiler設計師回答您:)
09/14 20:47, 2F

09/14 20:58, , 3F
chinese, plz
09/14 20:58, 3F

09/14 21:07, , 4F
寶傑: 友驊兄。你怎麼看?
09/14 21:07, 4F
※ 編輯: shishishi1 來自: 1.161.61.48 (09/14 21:54)

09/15 08:00, , 5F
是用 malloc 宣告還是用 double X[5][3] 啊 ?
09/15 08:00, 5F

09/15 13:28, , 6F
樓上 看起來是int 不是double XD
09/15 13:28, 6F

09/15 13:48, , 7F
程式嗎?
09/15 13:48, 7F

09/15 22:45, , 8F
我宣告是用int 配記憶體是用malloc請問這樣會有影響嗎?
09/15 22:45, 8F

09/15 22:45, , 9F
因為72感覺是3的倍數 我想問一下這個怎麼來的
09/15 22:45, 9F

09/15 23:08, , 10F
放 code 很難嗎?
09/15 23:08, 10F

09/16 15:57, , 11F
72或3是什麼魔法數字嗎?
09/16 15:57, 11F

09/16 23:09, , 12F
主觀認為問題出在哪裡 只給部分資訊往往沒用 放整個code吧
09/16 23:09, 12F

09/16 23:21, , 13F
72也是4和8的倍數,說真的這問題沒看code或甚至OS是無意義
09/16 23:21, 13F
※ 編輯: shishishi1 來自: 111.248.206.173 (09/17 00:46)

09/17 09:38, , 14F
X[1]與X[2]是兩次malloc來的, 所以差值基本沒什麼意義,
09/17 09:38, 14F

09/17 09:38, , 15F
不同compiler不同電腦, 甚至你code改一改哪邊多用少用點
09/17 09:38, 15F

09/17 09:39, , 16F
heap結果都可能不同. 所以沒什麼好追究下去的....
09/17 09:39, 16F

09/17 09:41, , 17F
不好意思哦,用 Dev C++的話,difference = 40 :(
09/17 09:41, 17F
文章代碼(AID): #1GKmdEH0 (C_and_CPP)
文章代碼(AID): #1GKmdEH0 (C_and_CPP)