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" (указатель) не инициализируется, поэтому она не указывает на что-либо перед использованием. Не плацдарм.
void initPLBP(double *&mat)
{
if (...)
{
int pcaDim = 10;
int featureDim = 80;
}
mat = new double[10 * 80];
}
int main()
{
double* pcaMat = 0;
initPLBP(pcaMat);
}
int main
, а неvoid main
. Во-вторых, все, что не является ссылкой, передается по значению.mat
не повлияет наpcaMat
. Пожалуйста, посмотрите на то, что передается по значению.