只需1个语句就可以使数组元素为零?

时间:2014-03-09 15:07:05

标签: c aptitude

它的给定,
 一个由两个元素组成的数组,初始化为1,2

     int data[2] = {1,2} ; 

现在使用单个语句将数据中的元素更改为零。这怎么可能 ? 。

我认为将其类型转换为双指针,然后将值设为0,

*((double *)data)= 0;

因为整数每个占用4个字节,所以为数组分配的内存是8个字节。 所以当我转换为double(8个字节)并将其设为0时。

它奏效了。我只是想知道它是正确的方法还是还有其他更好的解决方案?

除了memset之外还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

memset(data, 0, sizeof(data)) 

您可以使用memset

答案 1 :(得分:0)

如果您想使用0初始化数组,只需执行

int data[50] = {0}; 

初始值设定项会将第一个元素初始化为0,其余49个元素将隐式初始化为0