一个关于struct的问题,谢谢

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

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

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

...全文
46 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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把

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧