-1

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

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

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

我的想法是将其类型转换为双指针,然后将值设为 0 ,

*((双 *) 数据) = 0 ;

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

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

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

4

2 回答 2

1
memset(data, 0, sizeof(data)) 

您可以使用memset

于 2014-03-09T15:18:02.907 回答
0

如果你想初始化你的数组,0只需执行 as

int data[50] = {0}; 

初始化器会将第一个元素初始化为0,其余 49 个元素将0隐式初始化为。

于 2014-03-09T15:39:34.367 回答