討論串[問題] struct的data大小是可變的...
共 4 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓3(3推 0噓 10→)留言13則,0人參與, 最新作者pougoar時間16年前 (2009/02/25 22:35), 編輯資訊
1
0
0
內容預覽:
假設我有個. struct msg. {. int length;. char data[n];. };. 我想讓data的大小是可變的. 然後透過網路送出去. 這樣不知道要怎麼做比較好阿?. 我只知道可以用 dynamic allocate. struct msg. {. int length;.
(還有166個字)

推噓4(4推 0噓 4→)留言8則,0人參與, 最新作者realmeat (念.力.寫.程.式)時間16年前 (2009/02/25 22:59), 編輯資訊
0
0
0
內容預覽:
struct msg. {. int length; //4 bytes. char data[];. };. #define MSG_HEADER_SIZE (sizeof(struct msg)). 這樣就是header長度為4 的作法. struct msg *msg_ptr = (struc
(還有265個字)

推噓1(1推 0噓 6→)留言7則,0人參與, 最新作者QQ29 (我愛阿蓉)時間16年前 (2009/02/26 00:28), 編輯資訊
0
0
0
內容預覽:
你好. 我剛剛試了一下. 我太嫩了 我沒有遇過這種方式. 原來您. struct msg *msg_ptr = (struct msg*) malloc(長度+MSG_HEADER_SIZE);. 這行加上了長度 是有用意的.... 我還在想 你data[]沒給長度我該怎麼assign值給他呢?.
(還有272個字)

推噓2(2推 0噓 3→)留言5則,0人參與, 最新作者realmeat (念.力.寫.程.式)時間16年前 (2009/02/26 01:30), 編輯資訊
0
0
1
內容預覽:
這無法sizeof, 因為本來就是為了不定長度所使用的. 他沒有固定大小, 也可以說他沒有分配實際的空間. 所以我sizeof那個結構, 最末端的 data[]是被無視的. 請參考文件. http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Zero-Length.
首頁
上一頁
1
下一頁
尾頁