Я пытаюсь передать аргумент массива в C++. Такие коды.Передача аргументов array error
main()
{
...
double *terms = new double[9];
GuassianTerms(9,1,terms);
< термины не имеют правильные значения при здесь>
...}
double Cmfc_test5Dlg::Guassian(int x, double sigma)
{
double c = 2.0 * sigma * sigma;
return exp(-x * x/c)/sqrt(c * 3.141592f);
}
double Cmfc_test5Dlg::GuassianTerms(int kernalSize, double sigma, double terms[])
{
terms = new double[kernalSize];
for (int i = 0; i < kernalSize; ++i) {
terms[i] = Guassian(i - kernalSize/2, sigma);
}
return 1;//*terms;
}
Но термины имеют что-то неправильные значения.
Как получить аргумент прихода за проход?
Что мне делать для решения этой проблемы?
Почему вы выполняете 'terms = new double [kernalSize];' в 'GuassianTerms'? – NathanOliver
термины имеют тип double *, поэтому передавайте его как двойные * термины. Кроме того, этот способ приведет к утечке памяти, поскольку вы уже выделили термины в основном. Либо не выделяйте их снова, либо сначала очистите память. – prkist
Я новичок. поэтому я не знаю, с чего начать. – bural