C++中动态分配二维数组的问题

C++中利用new动态分配二维数组 先分配一个指向行的指针 再分配每个行数组所占用的空间
我的代码如下

img


然而这段代码在输入数据后无运行结果 程序不会结束或者莫名结束 不会运行数组输出那一段的代码
如下

img

然而当我打开调试器一步一步运行时程序却按照我所想象的方式运行

img


问题出现在哪里呢

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]用于为该行数组分配空间。
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^