当我尝试动态地分配像运行时错误时尝试动态数组分配的功能
array = new double *[genome_size];
for(int i=0; i<genome_size; i++)
array[i] = new double[max_size]();
是没有问题的,而且一切都很好矩阵,直到我试图做一个函数来完成这项工作像
void createArray(double **array, int max_size, int genome_size)
{
array = new double *[genome_size];
for(int i=0; i<genome_size; i++)
array[i] = new double[max_size]();
}
,并使用功能
double **avgWing1;
createArray(avgWing1, max_size, genome_size);
我得到运行时错误。我很好奇为什么?
任何想法赞赏。
出于兴趣,你就知道这是代表一个矩阵一个可怕的方式? – 111111
我不寻找更好的表示家伙,但我喜欢听到你的方式@ 111111 – dare
首先,你使用ADT,理想情况下来自数字库,如boost uBlas或NT2更好。 (他们将提供矩阵和矢量类型)。然而,如果你必须自己推出,那么最好有一个带有m * n个元素的'double *',然后像'array [j * m + i]'或者其他什么来计算偏移量。 – 111111