传递数组时未使用初始化而使用变量

时间:2014-03-18 03:15:38

标签: c++

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


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

当我运行代码时,它说“变量'pcaMat'正在使用而未被初始化”。问题是我无法在主函数中为pcaMat分配内存(由其他一些原因询问)。有什么办法吗?谢谢

1 个答案:

答案 0 :(得分:2)

编译器的含义是变量'pcaMat'(指针)未被初始化,因此它在使用之前不指向任何内容。不是指针。

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

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