Re: [問題] C語言 char string array

看板Programming作者 (-6.2598534e+18f)時間8年前 (2015/12/03 21:50), 編輯推噓5(500)
留言5則, 5人參與, 最新討論串2/2 (看更多)
你對 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

12/04 10:25, , 1F
受教了 謝謝
12/04 10:25, 1F

12/06 20:26, , 2F
12/06 20:26, 2F

03/27 16:19, , 3F
受教了,感謝
03/27 16:19, 3F

08/09 21:38, , 4F
推!!!
08/09 21:38, 4F

10/04 14:17, , 5F
簽名檔好讚
10/04 14:17, 5F
文章代碼(AID): #1MO4YsSF (Programming)
文章代碼(AID): #1MO4YsSF (Programming)