• 全部
  • 问答

怎样把结构数组初始化为0?

screen12 2014-11-15 10:06:52
比如这样的一个结构数组:
struct CAND
{
int hznum;
TCHAR hz[260];
int AllWidth;
PointF ptfts;
TCHAR ts[256];
int tsnum;
PointF ptfhz;
RECT rc;
}cand[10]={{0}};

我在最后的定义处写道:cand[10]={{0}}; 这是初始化第一个结构,但我听说只要初始化第一个结构,后面的结构全部会被置为0

但我调试的结果却发现:只有第一个结构初始化为0了,别的结构都没有。

怎样把全部10个结构都在定义的时候初始化为0呢?

...全文
1644 1 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wxgchrome123 2014-11-15
bzero memset
回复
w74839520 2014-11-15
用结构体,定义一个变量,用变量来初始化
回复
GQB1226 2014-11-15
赞同九楼的方法
回复
screen12 2014-11-15
引用 2 楼 snowmagic 的回复:
cand[10] = {0}
这个我试了一下,还是只能把第一个结构(各个字段)初始化为0,其他9个结构仍然没有初始化。
回复
正在无聊中 2014-11-15
干脆设成全局变量好了。 像这么“巨大”的数组栈不一定能装得下
回复
screen12 2014-11-15
引用 1 楼 runner90 的回复:
memset(&cand, 0, sizeof(CAND));
这个是可以,但我希望在定义的时候初始化。
回复
碼上道 2014-11-15
数组使用memset比较好。其实初始化使用{0}也是使用的memset
回复
snowmagic 2014-11-15
cand[10] = {0}
回复
memset(&cand, 0, sizeof(CAND));
回复
williamhong 2014-11-15
1. 定义成全局的或者static的 2. 用0初始化第一个内部为0,再用这个变量初始化其它的, 类似int aa[2] = {0,aa[0]};
回复
taodm 2014-11-15
你以后就会在血泪经验中明白调试器就是一个垃圾
回复
screen12 2014-11-15
引用 10 楼 taodm 的回复:
printf/cout看到的才是真实,别太相信调试器。 [quote=引用 8 楼 screen12 的回复:] [quote=引用 7 楼 taodm 的回复:] 楼主用的什么编译器?怎么确认的没有初始化?
VS2008,我是调试的方法确定没有初始化的。因为调试状态下,查看发现cand[0]里面各个变量全部被清为0,但从cand[1]到cand[9],里面的变量是各种各样的值。因为本来定义的就是局部变量,其值是不确定的。 按照道理讲,初始化第一个结构,后面的都应该清0,结果却不是,令人郁闷。[/quote][/quote] 什么?调试显示的变量值都不一定对?我有点震惊了。
回复
taodm 2014-11-15
printf/cout看到的才是真实,别太相信调试器。
引用 8 楼 screen12 的回复:
[quote=引用 7 楼 taodm 的回复:] 楼主用的什么编译器?怎么确认的没有初始化?
VS2008,我是调试的方法确定没有初始化的。因为调试状态下,查看发现cand[0]里面各个变量全部被清为0,但从cand[1]到cand[9],里面的变量是各种各样的值。因为本来定义的就是局部变量,其值是不确定的。 按照道理讲,初始化第一个结构,后面的都应该清0,结果却不是,令人郁闷。[/quote]
回复
li4c 2014-11-15
struct a
{
  int a;
  int b[10];
}
struct a tmp[10];
memset(tmp,0 ,10 * sizeof(struct a));
回复
screen12 2014-11-15
引用 7 楼 taodm 的回复:
楼主用的什么编译器?怎么确认的没有初始化?
VS2008,我是调试的方法确定没有初始化的。因为调试状态下,查看发现cand[0]里面各个变量全部被清为0,但从cand[1]到cand[9],里面的变量是各种各样的值。因为本来定义的就是局部变量,其值是不确定的。 按照道理讲,初始化第一个结构,后面的都应该清0,结果却不是,令人郁闷。
回复
taodm 2014-11-15
楼主用的什么编译器?怎么确认的没有初始化?
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2014-11-15 10:06
社区公告
暂无公告