我研究了两种不同的方法来为矩阵的元素分配内存
方法 n.1
int** matrix = new int*[rows];
for (int i = 0; i < rows; ++i)
matrix[i] = new int[cols];
方法 n.2
int** matrix = new int*[rows];
if (rows)
{
matrix[0] = new int[rows * cols];
for (int i = 1; i < rows; ++i)
matrix[i] = matrix[0] + i * cols;
}
我可以弄清楚方法 n.1 做了什么,但我无法弄清楚方法 n.2 中的 if 子句到底应该做什么(我会在没有 if 子句的情况下实现它并且它不起作用,它确实...)
编辑:这是显示我的问题的代码。为什么加载需要这么长时间(约 30 秒)?
Codepad 拒绝显示输出(超时),所以如果你想运行它,只需自己编译它。
另外,为什么程序启动后不执行 cout << 语句?