请问为什么用注释掉的部分建立动态二维数组就会报错,用malloc就不会报错?
void Matrix()
{
int i;
//double** P_ca_x = new double* [Times];
//double** P_ca_y = new double* [Times];
//double** P_ca_z = new double* [Times];
//double** v_ca_x = new double* [Times];
//double** v_ca_y = new double* [Times];
//double** v_ca_z = new double* [Times];
//double** v_ca = new double* [Times];
P_ca_x = (double**)malloc(sizeof(double*) * Times);
P_ca_y = (double**)malloc(sizeof(double*) * Times);
P_ca_z = (double**)malloc(sizeof(double*) * Times);
v_ca_x = (double**)malloc(sizeof(double*) * Times);
v_ca_y = (double**)malloc(sizeof(double*) * Times);
v_ca_z = (double**)malloc(sizeof(double*) * Times);
v_ca = (double**)malloc(sizeof(double*) * Times);
for (i = 0; i < Times; i++)
{
//P_ca_x[i] = new double[Num];
//P_ca_y[i] = new double[Num];
//P_ca_z[i] = new double[Num];
//v_ca_x[i] = new double[Num];
//v_ca_y[i] = new double[Num];
//v_ca_z[i] = new double[Num];
//v_ca[i] = new double[Num];
P_ca_x[i] = (double*)malloc(sizeof(double) * Num);
P_ca_y[i] = (double*)malloc(sizeof(double) * Num);
P_ca_z[i] = (double*)malloc(sizeof(double) * Num);
v_ca_x[i] = (double*)malloc(sizeof(double) * Num);
v_ca_y[i] = (double*)malloc(sizeof(double) * Num);
v_ca_z[i] = (double*)malloc(sizeof(double) * Num);
v_ca[i] = (double*)malloc(sizeof(double) * Num);
}
}
void Delete()
{
int i;
for (i = 0; i < Times; i++)
{
//delete[] P_ca_x[i];
//delete[] P_ca_y[i];
//delete[] P_ca_z[i];
//delete[] v_ca_x[i];
//delete[] v_ca_y[i];
//delete[] v_ca_z[i];
//delete[] v_ca[i];
free(P_ca_x[i]);
free(P_ca_y[i]);
free(P_ca_z[i]);
free(v_ca_x[i]);
free(v_ca_y[i]);
free(v_ca_z[i]);
free(v_ca[i]);
}
//delete[] P_ca_x;
//delete[] P_ca_y;
//delete[] P_ca_z;
//delete[] v_ca_x;
//delete[] v_ca_y;
//delete[] v_ca_z;
//delete[] v_ca;
free(P_ca_x);
free(P_ca_y);
free(P_ca_z);
free(v_ca_x);
free(v_ca_y);
free(v_ca_z);
free(v_ca);
}
在对数组赋值时报错,用malloc则不会报错