[問題] 問一個建立struct的問題

看板C_and_CPP作者 (徵女友)時間8年前發表 (2016/11/25 14:16), 8年前編輯推噓4(4013)
留言17則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) windows 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VS 問題(Question): 我寫的程式,要讀取另一個程式記憶體內的資料 那個資料是完整的struct結構,但是其內容非常大 而我只知道struct的大小,但整個結構不知道 但是我只要其中幾個數據 我自己建立一個struct去讀他 typedef struct _iteminfo { int index; int type; char* name; . . . int count; . . _iteminfo* next; }*ITEMINFO 中間的....有的資料但是我用不到,我要怎麼把中間的資料弄滿去完成這整個struct 還是只能弄個同樣大小的東西去塞他? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.78.26 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1480083390.A.33C.html ※ 編輯: stupid0319 (122.117.78.26), 11/25/2016 22:16:59

11/25 22:24, , 1F
好像只能塞用不到的member?能指定member offset有多好
11/25 22:24, 1F

11/25 22:25, , 2F
對了,提醒要注意alignment問題,可能會需要packed
11/25 22:25, 2F

11/25 22:31, , 3F
對呀,沒辦法指定元素的偏移位置嗎........
11/25 22:31, 3F

11/26 00:32, , 4F
塞char array吧
11/26 00:32, 4F

11/26 00:34, , 5F
我是覺得也不用去建struct,直接用byte offset去取值
11/26 00:34, 5F

11/26 00:54, , 6F
沒有建struct會讓程式變的很零亂,也比較會出現bug
11/26 00:54, 6F

11/26 01:23, , 7F
塞char array還不錯
11/26 01:23, 7F

11/26 02:41, , 8F
標準 C 有個好用的 macro , 叫 offsetof, 用這個可以重新
11/26 02:41, 8F

11/26 02:41, , 9F
抽出所有你要的成員。是我的話會用
11/26 02:41, 9F

11/26 02:42, , 10F
int convert( ITEMINFO * pInfo , mystruct * pMyInfo);
11/26 02:42, 10F

11/26 02:43, , 11F
裡面就用 offsetof 去做,這樣以後 ITEMINFO 加成員也不用
11/26 02:43, 11F

11/26 02:43, , 12F
改變上述的 "塞array" 的大小。
11/26 02:43, 12F

11/26 07:13, , 13F
樓上的意思像是是不是struct打掉重組成另一個的感覺
11/26 07:13, 13F

11/26 07:17, , 14F
但是要直接修改目標程式的記憶體內容會變的很不方便
11/26 07:17, 14F

11/26 07:18, , 15F
不過又多學到了兩個巨集了,感謝
11/26 07:18, 15F

11/26 08:14, , 16F
跟打掉沒關係
11/26 08:14, 16F

11/26 13:24, , 17F
拿資料出來重排的感覺
11/26 13:24, 17F
文章代碼(AID): #1OE4U-Cy (C_and_CPP)