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);
}