c ++动态数组的初始值

Arn*_*rno 25 c++

我需要动态创建一个整数数组.我发现在使用静态数组时的语法

int a [5]={0};
Run Code Online (Sandbox Code Playgroud)

将所有元素的值正确初始化为0.

有没有办法在创建动态数组时做类似的事情

int* a = new int[size];
Run Code Online (Sandbox Code Playgroud)

而不必遍历数组的所有元素?或者使用for循环赋值仍然是最佳方法?谢谢

sha*_*oth 36

当然,只需()用于值初始化:

 int* ptr = new int[size]();
Run Code Online (Sandbox Code Playgroud)

(取自我之前密切相关的问题的答案)

  • 我尝试了@shartptooth并得到一个错误:错误:ISO C ++禁止在新数组中初始化[-fpermissive] (2认同)

Rob*_*ert 5

我会做:

int* a = new int[size];
memset(a, 0, size*sizeof(int));
Run Code Online (Sandbox Code Playgroud)

  • @Arno正确的方法是Sharptooth的答案。 (6认同)

And*_*rey 5

我建议你使用std::vector<int>std::array<int,5>