[問題] 在struct中的指標, malloc後的使用方式

看板C_and_CPP作者 ( )時間14年前 (2011/10/06 11:07), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
開發平台(Platform): linux, ansi c 問題(Question): file_info structure中兩個成員,因為大小需動態分配所以令為指標 #14 #15可以看出第一個成員可以存取, 而第二個成員為另一個 struct, 請問 該如何存取 其他筆 group 的子成員資料?? (抑或根本不該這樣使用?有其他建議寫法?) 程式碼(Code): http://pastie.org/2647415 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.10.127

10/06 11:09, , 1F
#19 該如何表示?
10/06 11:09, 1F

10/06 11:16, , 2F
(ptr+i)->member 就是第i個的member
10/06 11:16, 2F

10/06 11:28, , 3F
其實別理解成 *(ptr+i) 理解成 ptr[i] 就會好懂很多
10/06 11:28, 3F

10/06 11:29, , 4F
如#15可寫為 file_info.file_size[1] = 55;
10/06 11:29, 4F

10/06 11:29, , 5F
這樣看的話 #19 可寫為 file_info.group[1].num_of_dev = 2;
10/06 11:29, 5F

10/06 11:36, , 6F
耍寶,有人討論果然快很多。二三樓的意思我都理解,thx
10/06 11:36, 6F

10/06 11:44, , 7F
(int *)malloc( 2*sizeof(*File_info.file_size));就好
10/06 11:44, 7F

10/06 11:45, , 8F
以後要更改datatype時,不用修改太多.只是那前面(int *)
10/06 11:45, 8F

10/06 11:45, , 9F
我忘記要怎麼解決了
10/06 11:45, 9F

10/06 11:46, , 10F
應該可以用marco去解決.
10/06 11:46, 10F
文章代碼(AID): #1EZHjpUm (C_and_CPP)