C++中利用new动态分配二维数组 先分配一个指向行的指针 再分配每个行数组所占用的空间
我的代码如下
然而当我打开调试器一步一步运行时程序却按照我所想象的方式运行
for(int i=0;i<rows;i++)
第一个for语句,是i<rows,不是i<lens
```c++
int row = 3;
int col = 4;
// 分配指向行的指针数组
int** array = new int*[row];
// 分配每个行数组所占用的空间
for (int i = 0; i < row; ++i) {
array[i] = new int[col];
}
// 使用数组
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
array[i][j] = i * col + j;
cout << array[i][j] << " ";
}
cout << endl;
}
// 释放内存
for (int i = 0; i < row; ++i) {
delete[] array[i];
}
delete[] array;
分配一个指向行的指针数组,每个指针指向一行。
这里的row是二维数组的行数,array是指向指针数组的指针。
这里的col是二维数组的列数,array[i]表示指针数组中第i个指针所指向的行数组,new int[col]用于为该行数组分配空间。
不知道你这个问题是否已经解决, 如果还没有解决的话:对于给定的由nnn个自然数组成的多重集SSS,计算SSS的众数及其重数。