Chinaunix

标题: 结构体变量的成员--指针数组初始化问题 [打印本页]

作者: insane    时间: 2008-09-22 22:52
标题: 结构体变量的成员--指针数组初始化问题
#include <stdio.h>
#define NUM 8

typedef struct game
{
&nbsp;&nbsp;&nbsp;&nbsp;char *b[NUM];
&nbsp;&nbsp;&nbsp;&nbsp;char *c[NUM];
}GAME;

int main()
{

&nbsp;&nbsp;&nbsp;&nbsp;GAME game1;
&nbsp;&nbsp;&nbsp;&nbsp;char *s[] = {"abc", "bcd", "cde", "def", "efg", "fgh", "sdf", "sdf"};&nbsp;&nbsp;&nbsp;&nbsp;// 1:没出错误

&nbsp;&nbsp;&nbsp;&nbsp;game1.b[] = {"abc", "bcd", "cde", "def", "efg", "fgh", "sdf", "sdf"};&nbsp;&nbsp;&nbsp;&nbsp;// 2:编译错误


&nbsp;&nbsp;&nbsp;&nbsp;game1.c[1] = "abc";&nbsp;&nbsp;&nbsp;&nbsp;// 3:没出错误



&nbsp;&nbsp;&nbsp;&nbsp;printf("%s\n", game1.b[1]);

&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}



发贴前搜索过, 网上都是结构体数组, 结构体指针, 结构体数组指针等等, 但就是没有我想要的这个...

问题:为什么在2处有错, 是不是这样引用错了? 要是错了, 怎么引用成员才正确?

[ 本帖最后由 insane 于 2008-9-22 22:53 编辑 ]
作者: cugb_cat    时间: 2008-09-22 22:58
2不是初始化
结构体中分量的初始化应该是:
GAME game1 = {{"abc", "bcd", "cde", "def", "efg", "fgh", "sdf", "sdf"}, {NULL, NULL}};
作者: mik    时间: 2008-09-22 22:58
标题: 回复 #1 insane 的帖子
啥叫初始化,啥叫赋值,知道吗
作者: insane    时间: 2008-09-22 23:04
原帖由 mik 于 2008-9-22 22:58 发表
啥叫初始化,啥叫赋值,知道吗


不好意思...
作者: insane    时间: 2008-09-22 23:06
原帖由 cugb_cat 于 2008-9-22 22:58 发表
2不是初始化
结构体中分量的初始化应该是:
GAME game1 = {{"abc", "bcd", "cde", "def", "efg", "fgh", "sdf", "sdf"}, {NULL, NULL}};


谢谢.
不过我是对game1里的成员b初始化, 成员c是我拿出来对比的.

只对b初始化是不是应该这样:

GAME game1 = {{"abc", "bcd", "cde", "def", "efg", "fgh", "sdf", "sdf"}}

[ 本帖最后由 insane 于 2008-9-22 23:10 编辑 ]
作者: Godbach    时间: 2008-09-23 09:21
错误就在于指针没有初始化啊
作者: mzli    时间: 2008-09-23 10:41
数组统一赋值,只能在初始化时。使用过程中只能单独赋值。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2