【问题标题】:Making elements of array to zero in just 1 statement? [closed]仅在 1 条语句中使数组元素为零? [关闭]
【发布时间】:2014-03-09 23:57:56
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

  • 我没有得到一个数组,你是。
  • 尝试搜索一下。一个好的搜索查询可能是“将 C 中的数组归零”。对于您的特定问题,提示是memset。
  • @SanjayT.Sharma 我只想知道我的方法是否正确。很抱歉一开始没有对问题给出清晰的描述。现在我已经编辑了问题。
  • @MarounMaroun 我已经编辑了这个问题。看看吧。

标签: c aptitude


【解决方案1】:
memset(data, 0, sizeof(data)) 

你可以使用memset

【讨论】:

    【解决方案2】:

    如果你想用0 初始化你的数组,就照做

    int data[50] = {0}; 
    

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

    【讨论】:

    • 我不想初始化。我已经初始化了数组。我必须在一个语句中将它的所有元素都设为 0。
    猜你喜欢
    • 1970-01-01
    • 2014-01-01
    • 2021-08-21
    • 2016-06-22
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    相关资源
    最近更新 更多