看板 Programming 關於我們 聯絡資訊
你對 struct 的觀念有誤 宣告 struct 只有宣告其結構, 並沒有宣告變數出來 是要宣告變數之後才能給它初值 因此你該做的是: #define MAXROW 3 #define MAXCOL 4 #define MAXLEN 11 typedef struct{ char data[MAXROW][MAXCOL][MAXLEN]; } mydatabase_t; mydatabase_t mydb = { { {"00","David","Taipei", "0912345678"}, {"01","Tommy","Tainan", "0912345678"}, {"02","Elsa","KaoHsiung", "0912345678"} } }; ==== 如果你想要的是所有這個 struct 的結構都要先有這樣的初值 C 語言只能使用間接的方式達成 例如所有 mydatabase_t 的變數都透過某個函數取得 由該函數進行初始填值的動作 這在 C++ 有一個叫做建構子的東西能把類似的機制藏在宣告裡面 不過既然你這是在寫 C 語言就簡單帶過 ==== 有人可能會說「那就建立一個靜態成員就好啦」 很抱歉, 那也是只有 C++ 才行, C 是不行的 C 的 struct 就真的只是很單純的「資料結構包」而已 -- 実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」 亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」 実琴:「難道你沒有男人的尊嚴了嗎?!」 亨:(斷然道)「沒有。在節衣縮食生活吃緊學生面前,沒有那種東西。」 --プリンセス・プリンセス 第二話 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.39.85 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1449150646.A.70F.html
freeedward: 受教了 謝謝125.227.158.249 12/04 10:25
xvid: 推 114.32.203.146 12/06 20:26
Hurricaneger: 受教了,感謝 112.104.14.111 03/27 16:19
jeff7037: 推!!! 114.24.38.28 08/09 21:38
aulopiformes: 簽名檔好讚 75.70.64.31 10/04 14:17