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

作者: LPH66 (-6.2598534e+18f)   2015-12-03 21:50:44
你對 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 就真的只是很單純的「資料結構包」而已

Links booklink

Contact Us: admin [ a t ] ucptt.com