| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6568 人关注过本帖
标题:结构体里面的 字符数组 怎么不能初始化?
只看楼主 加入收藏
zhabeilove
Rank: 2
等 级:论坛游民
帖 子:26
专家分:28
注 册:2010-9-25
结帖率:88.89%
收藏
已结贴  问题点数:15 回复次数:11 
结构体里面的 字符数组 怎么不能初始化?
我定义了一个结构体:

struct Database
{
  char           Name[];
}Skk;

Skk.Name[] = "abcde";

这个怎么不能给Name 赋值?

只有15分了。。
搜索更多相关主题的帖子: 结构体 字符 
2010-10-08 11:10
linqingwudi
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2010-9-14
收藏
得分:0 
你没有给数组结构体Name[];定义一个准确的值,因为struct Database是个数据类型,所以要确定一个值,好分配存储空间大小,就好像int占2字节一样
我记得以前学的时候书上是这么介绍的
2010-10-08 11:39
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
Skk.Name[0] = "abcde";
Skk.Name[1] = "abcde";
.....

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-08 12:36
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:0 
你怎么没设置数组大小?这是错误的C语句。C语言里数组一出来就得要有确切大小的。

2010-10-08 16:08
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:0 
以下是引用vandychan在2010-10-8 12:36:58的发言:

Skk.Name[0] = "abcde";
Skk.Name[1] = "abcde";
.....
楼主定义的似乎不是二维数组吧

2010-10-08 16:10
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
以下是引用不归鹄在2010-10-8 16:10:15的发言:

楼主定义的似乎不是二维数组吧
搞错 呵呵
应该是 name[]={};

[ 本帖最后由 vandychan 于 2010-10-8 16:14 编辑 ]

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-08 16:13
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
字符数组声明格式不对

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-10-08 21:08
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:8 
struct Database
{
  char           Name[];
};

这种结构体声明倒是对的,最新的C标准支持这种写法,但是,初始化它就没这么简单了,前面还没有一个人说对正确的初始化办法呢
并且,这个东西的初始化,只能手工,先用malloc(sizeof(struct Database) + size);
其中size是你希望的Name的长度,然后你只能用strcpy这样的方式初始化了

这种结构体如果直接 struct Database Skk 这样,那就没意义了

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-08 21:38
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
以下是引用御坂美琴在2010-10-8 21:38:14的发言:

struct Database
{
  char           Name[];
};
 
这种结构体声明倒是对的,最新的C标准支持这种写法,但是,初始化它就没这么简单了,前面还没有一个人说对正确的初始化办法呢
并且,这个东西的初始化,只能手工,先用malloc(sizeof(struct Database) + size);
其中size是你希望的Name的长度,然后你只能用strcpy这样的方式初始化了
 
这种结构体如果直接 struct Database Skk 这样,那就没意义了
谢谢瘀斑姐姐

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-08 21:51
cacker
该用户已被删除
收藏
得分:7 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-08 23:44
快速回复:结构体里面的 字符数组 怎么不能初始化?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023088 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved