一个关于struct的问题,谢谢

youyuas 2004-05-03 10:27:44
struct son{
char *s[];
};
struct father{
son a;
};
然后定义
father test[] = {
{"1111111"},
{"222222","333333"},
}

这时候就会出错了,说son中定义的字符串数组没有给出长度
可是我想实现的功能是
在test[]中定义的数组 是不定长度的,字符串的长度是不定的
如我所写得那样

请问一下,这该如何实现呢?
谢谢

...全文
23 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
youyuas 2004-05-04
struct son{
char **s;
};
这种方法也试过了,也会出错的
;;;;;;;;;;;;;;;;
用vector?我是用tc写的,好像不支持vector吧
  • 打赏
  • 举报
回复
lbaby 2004-05-04
...不知你想用这个结构干什么用
  • 打赏
  • 举报
回复
zhouqingyuan 2004-05-03
楼上的显然不可以!指针空间未分配即使用。

test[]中定义的数组 是不定长度的,只能定义一个最大长度。不过这样空间消耗可能太大。
视情况可以采用vector<char*>或者链表来表示的。
  • 打赏
  • 举报
回复
召棠 2004-05-03
struct son{
char **s;
};

struct father{
son a;
};

father test[] = {
{"1111111"},
{"222222","333333"},
}

我现在度假,手头没有编译器,你试试这样可以吗?
  • 打赏
  • 举报
回复
julyclyde 2004-05-03
可是现在已经是C99标准了啊。不要拿10年前的标准来说事
C99支持声明“后说明长度的”数组。不过也是定长
  • 打赏
  • 举报
回复
junnyfeng 2004-05-03
按c89标准,数组必须定义长度

解决方法
struct son{
char *s[3];
};
  • 打赏
  • 举报
回复
cngdzhang 2004-05-03
用vector把
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-03 10:27
社区公告
暂无公告