void initPLBP(double *mat)
{
    if (...)
    {
        int pcaDim = 10;
        int featureDim = 80;
    }
    mat = new double[10 * 80];
}


void main()
{
    double* pcaMat;
    initPLBP(pcaMat);
}


当我运行代码时,它说“正在使用变量'pcaMat'而不进行初始化”。问题是我不能在主要功能中为pcaMat分配内存(由于其他一些原因)。有什么解决办法吗?谢谢

最佳答案

编译器的意思是变量“ pcaMat”(指针)未初始化,因此在使用之前不会指向任何内容。不是pointee。

void initPLBP(double *&mat)
{
    if (...)
    {
        int pcaDim = 10;
        int featureDim = 80;
    }
    mat = new double[10 * 80];
}

int main()
{
    double* pcaMat = 0;
    initPLBP(pcaMat);
}

09-25 20:23