Re: [問題] C語言 char string array
你對 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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章