我在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;
}

10-06 15:22