使用C ++中的默认值动态创建二维数组

时间:2015-04-18 21:14:27

标签: c++

是否有c ++方法可以动态创建0初始化的2-D整数数组? (比如在c)中使用calloc()。

2 个答案:

答案 0 :(得分:0)

在基本类型之后添加一对括号,在动态创建它时使其为零。

例如,

int* a = new int();
int* b = new int;

然后* a == 0,* b ==!#$%#$ @ $%&

与数组相同,

int* a = new int[5]();
int* b = new int[5];

我想你已经知道他们发生了什么事。

所以这个技巧也可以用于2D数组。您可以尝试这样写作

int (*a)[10] = new int[5][10]();

答案 1 :(得分:0)

对于具有[][]可访问的运行时维度的连续二维数组,没有标准构造。如果这是你想要的,那么下载一个Matrix库。 (如果你感到勇敢,那么你可以尝试自己编写)。

要制作锯齿状数组,您可以写:

vector<vector<int>> arr1{r, vector<int>(c)};

其中rc是尺寸。