Re: [問題] struct的data大小是可變的...

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2009/02/26 00:28), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串3/4 (看更多)
你好 我剛剛試了一下 我太嫩了 我沒有遇過這種方式 原來您 struct msg *msg_ptr = (struct msg*) malloc(長度+MSG_HEADER_SIZE); 這行加上了長度 是有用意的... 我還在想 你data[]沒給長度我該怎麼assign值給他呢? 不過我不懂的是 struct msg { char data[]; int length; //4 bytes }; 寫顛倒 他就compile說error C2229: struct 'msg' 擁有大小為零的不合法陣列 這實在不懂耶.............. 還有下面說的 等號那個型態不同可以這樣寫嗎? 我試的結果也不能過... 請指教 剛剛又想印看看 長度 cout<<sizeof(msg_ptr->data); 這也不給我過@@ 這是位什麼呢??? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.211

02/26 00:30, , 1F
data[] 後面是不是少了 ; 呢?
02/26 00:30, 1F

02/26 00:30, , 2F
喔喔抱歉 我打錯 改一下
02/26 00:30, 2F
※ 編輯: QQ29 來自: 140.113.207.211 (02/26 00:30)

02/26 00:31, , 3F
波文筆誤~
02/26 00:31, 3F
※ 編輯: QQ29 來自: 140.113.207.211 (02/26 00:33)

02/26 00:44, , 4F
倒著寫,過不了,那是一個空位址,指到結構的最尾巴的地方
02/26 00:44, 4F

02/26 00:54, , 5F
沒給大小他沒法定位下一個參數位址,so 過不了
02/26 00:54, 5F

02/26 01:06, , 6F
那位什麼不能取sizeof呢@@
02/26 01:06, 6F

02/26 13:52, , 7F
讀一下含 C99 標準的 C 語言教科書。
02/26 13:52, 7F
文章代碼(AID): #19fN6vOP (C_and_CPP)
文章代碼(AID): #19fN6vOP (C_and_CPP)