作者LPH66 (-6.2598534e+18f)
看板Programming
標題Re: [問題] C語言 char string array
時間Thu Dec 3 21:50:44 2015
你對 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