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