我在C++中的类的函数成员中本地定义了以下变量:
double coeff, mincoeff, minratio,
equality[100][5000],
tableau[51][5052],
x[50][100];
运行时程序崩溃。当我注释掉
equality
数组时,它可以工作,但是如果我不注释掉它,则会使程序崩溃。对于tableau
数组,它不是正确的,它始终与'tableau'数组一起使用,而没有'equality'数组。我看到了一个使用malloc()
函数动态分配空间的帖子,例如:double *equality;equality = malloc(500000*sizeof(double));
但这给了我一个错误,没有从
void*
转换为double*
。还有另一种方法吗? 最佳答案
在堆上分配相等性,并在完成处理后分配可用内存:
int main()
{
double** equality = new double* [100];
for(int i(0); i < 100; i++)
equality[i] = new double[5000];
for(int i = 0; i < 100; i++)
delete[] equality[i];
delete[] equality;
equality = NULL;
std::cout << std::endl;
return 0;
}