→ wuliou: records的的宣告在哪? 11/25 23:59
→ azureblaze: 為何不直接試試看? 11/26 00:04
→ PoorLoser: 可以啊, 填多少就有多少個 _Record 11/26 00:05
→ PoorLoser: 不過小魯習慣把 _Record 型態定義在外面 11/26 00:06
所以我可以
Message msg;
msg.records = (struct _Record)* malloc (5 * sizeof(struct _Record));
...
free(msg.records);
類似這樣? 怎麼感覺都怪怪的@@
→ wuliou: 啊 眼殘了 歹勢 11/26 00:10
→ PoorLoser: 不可以, 左邊要是 pointer 11/26 00:30
→ PoorLoser: 然後你宣告完產生的物件裡面就佔了那麼大的空間 11/26 00:31
→ PoorLoser: 用 malloc 做甚麼? 11/26 00:32
我的表達能力很差, 因為這個結構拿來用 Message msg; 那我只能
msg.records[0].d = 1.0;
time(&msg.records[0].t); 之類的存一筆資料
我在納悶如我我要存NumberOfRecords筆的資料會怎麼做
→ PoorLoser: 不太懂欸, 對成員賦值的確是這樣填, 不然也可以建立 11/26 01:50
→ PoorLoser: 一個 _Record 把值都填好然後用 memcpy 整個塞進去 11/26 01:51
→ PoorLoser: 若是初始化就要填固定資料的話可加上 packed 11/26 01:52
就是現在Message這個結構裡面只會有一筆record,
納悶有什麼辦法在不動records[1]這邊, //像假如改成records[5]就可以存5筆
但是可以達到類似宣告records[5]的效果 //或是改成 *records 就可以 malloc?
※ 編輯: lionheart60 (114.42.207.127), 11/26/2014 02:09:15
→ PoorLoser: 方法就你提的, 改 records 陣列大小用指標 11/26 02:12
→ PoorLoser: 但要用指標不如就改寫成 linked list 11/26 02:12