当我运行此代码时,在指定的行处发生错误,N和N1在代码顶部定义了常量。谢谢
double **Agf, **Ahf;////////N*N1 Matrix/////////
Agf = new double*[N1]; for (int ii = 0; ii < N; ii++)Agf[ii] = new double[N1];
Ahf = new double*[N1]; for (int ii = 0; ii < N; ii++)Ahf[ii] = new double[N1];
for (int i = 0; i < N; i++){ for (int j = 0; j < N1; j++){Agf[i][j] = Ahf[i][j] = 0; } }
for (int ii = 0; ii < N; ii++)
{
delete[] Agf[ii];
delete[] Ahf[ii];
}
delete[] Agf;// error occurs here
delete[] Ahf;
答案 0 :(得分:1)
假设您要使用N * N1矩阵,那么问题出在代码的第2行和第3行。您需要进行如下更改:
Agf = new double*[N]; for (int ii = 0; ii < N; ii++)Agf[ii] = new double[N1];
Ahf = new double*[N]; for (int ii = 0; ii < N; ii++)Ahf[ii] = new double[N1];
您需要使用行数初始化数组,然后使用列数初始化数组。