作者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://webptt.com/cn.aspx?n=bbs/Programming/M.1449150646.A.70F.html
1F:推 freeedward: 受教了 谢谢125.227.158.249 12/04 10:25
2F:推 xvid: 推 114.32.203.146 12/06 20:26
3F:推 Hurricaneger: 受教了,感谢 112.104.14.111 03/27 16:19
4F:推 jeff7037: 推!!! 114.24.38.28 08/09 21:38
5F:推 aulopiformes: 签名档好赞 75.70.64.31 10/04 14:17