看板 C_and_CPP 關於我們 聯絡資訊
這個還真難解釋 int main() { char suit[]; suit[] = "Hearts"; } 你能理解這樣的寫法是有問題的嗎? 若可以, 你的 struct 寫法就類似這樣。 一般是寫這樣 char suit[] = "Hearts"; suit 是 array, 大小是 7, 我想你把這兩種語法搞混了。 不過 char suit[]; 這個是什麼東西, 有版友可以解個疑惑嗎? array 可以不指定大小嗎? 答案這麼簡單, 自己沒先試試看 a.c:4:8: error: array size missing in ‘suit’ char suit[]; compiler 不給過 ※ 引述《youneverknow (睡覺一直想)》之銘言: : 開發平台(Platform): Code Blocks : 額外使用到的函數庫(Library Used): 無 : 問題(Question): : 宣告 struct Card,當中的char陣列無法被拉到main使用 : : 餵入的資料(Input): : 預期的正確結果(Expected Output): : 錯誤結果(Wrong Output): : \card13.cpp||In function 'int main()':| : \card13.cpp|15|error: expected primary-expression before ']' token| : \card13.cpp|16|error: expected primary-expression before ']' token| : ||=== Build finished: 2 errors, 0 warnings (0 minutes, 0 seconds) ===| : 程式碼(Code):(請善用置底文網頁, 記得排版) : http://ideone.com/YlhyBW : 補充說明(Supplement): : 新新手,正在學習中,請多包涵 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.125.239.51
youneverknow:感謝解惑! 10/07 16:32
purincess:那是initialization的寫法, compiler會幫你算 10/07 16:40
purincess:類似 int a[] = {1, 2, 3}; 10/07 16:40
Feis:d 大應該是指如果只有 int a[]; 的時候 10/07 16:41
descent:Feis 提到的就是我的疑惑。 10/07 16:50
Schottky:不能這樣寫啊, 會有 unknown size error 10/07 16:51
※ 編輯: descent 來自: 59.125.239.51 (10/07 16:57)
Ebergies:只有 struct 最後一個參數可以這樣做... 10/07 17:01
Gway:我比較想問 他用C寫 "Card deck"不寫成 struct Card deck; 10/07 17:50
Gway:不會compiler error ....這與我認知與實踐都不同 冏~ 10/07 17:50
Feis:Gway: 他是 C++, 你可以試著用 C 編譯看看 10/07 17:53
Feis:我印象中只有 C99 允許有兩個以上成員的結構最後一個成員可以 10/07 17:56
Feis:是不完整的陣列成員 (不用給大小), 但相對會有一些問題 10/07 17:57
Feis:其他像是 gcc 是將其視為擴充. 10/07 17:57
purincess:噢噢 誤解d大不好意思orz 10/07 21:04
youneverknow:G大,是存成cpp無誤 10/07 22:28
Gway:Sorry眼殘~感謝。Feis:我就是用C寫才覺得怎跟我結果不同:D 10/07 23:06
Gway:剛試了一下 f大講的正解 不過struct中不知大小的array 就要靠 10/07 23:13
Gway:的方法去初始化了 ex: memcpy strcpy 之類的 剛try 過 ~ OK 10/07 23:14
Gway:還真的沒注意過 感謝f大 ^0^ 10/07 23:15
Feis:@Gway: 這個用法有些陷阱, 最常見的問題是 "通常" 要 malloc 10/07 23:35
Feis:你要確保你使用的記憶體空間有配置. 10/07 23:36