C++ - 初始化具有全零的特定大小的指针数组

C++ - Initialize a pointer array of a certain size with all zeros

本文关键字:数组 指针 初始化 C++      更新时间:2023-10-16

我有以下C++行:

int len = 1000;
float *matrixAB = new float[len]();
//Stuff with matrixAB
delete [] matrixAB;

数组被声明为 ok,但我需要0所有值,但我无法弄清楚如何使用这样的指针数组来做到这一点。

我确定这非常简单,但我找不到参考。谁能指出我正确的方向?

正如评论所建议的,请使用std::vector<float>

std::vector<float> matrixAB(len);

这将对每个元素进行零初始化。如果您需要访问指向数组的指针,请使用 data()

如果你想使用向量,你可以默认初始化它们的值:

vector<float> vMatrixAB(len ,0);//initialize len elements with the value 0

请参阅此链接作为参考:标准:矢量

对于普通 C 数组,您可以使用内存集

float matrixAB[len]={0};
您可以使用

memset 将指针数组初始化为零。我已经修改了您的代码以演示:

int len = 1000;
float *matrixAB = new float[len]();
memset(matrix, 0, len * sizeof(float));
//Stuff with matrixAB
delete [] matrixAB;