如何将数组的所有值初始化为零

时间:2019-04-06 09:29:15

标签: c++

在cpp中,想象我是否写得像

int n;cin>>n;
int a[n]={0};

我期望的是,这段代码会将所有n个元素的值都转换为零,但是,这却给了我错误:

  

可变大小的对象可能未初始化

2 个答案:

答案 0 :(得分:0)

对于可变数组长度,请使用

  • vector<int> a(n, 0);既可以分配也可以初始化(我明确地将0表示为初始值,但这是默认值),它既允许您调整大小,也可以询问大小,并在您检查索引有效时访问它等。这是更安全和实用的方法。
  • new int[n];然后将其初始化为0,但是数组大小是恒定的,使用时必须自己知道大小为 n
  • 或在C (int *) calloc(n, sizeof(int))中允许通过 realloc 调整其大小,但是使用时仍然需要知道其大小

答案 1 :(得分:-2)

#include <iostream>
#include <algorithm>

int main()
{
    int n = 5;
    int val = 0;

    int arr[n];
    std::fill_n (arr, n, val);
}

您需要类似的东西吗?