它的给定,
一个由两个元素组成的数组,初始化为1,2
int data[2] = {1,2} ;
现在使用单个语句将数据中的元素更改为零。这怎么可能 ? 。
我认为将其类型转换为双指针,然后将值设为0,
*((double *)data)= 0;
因为整数每个占用4个字节,所以为数组分配的内存是8个字节。 所以当我转换为double(8个字节)并将其设为0时。
它奏效了。我只是想知道它是正确的方法还是还有其他更好的解决方案?
除了memset之外还有其他解决方案吗?
答案 0 :(得分:1)
memset(data, 0, sizeof(data))
您可以使用memset
答案 1 :(得分:0)
如果您想使用0
初始化数组,只需执行
int data[50] = {0};
初始值设定项会将第一个元素初始化为0
,其余49个元素将隐式初始化为0
。