Вопрос такой.
Есть функция, в теле которой создаётся динамический массив (выделяется память и выполняется заполнение определёнными значениями), вот прототип:
Код:
int inTabl(double* Tabl, double* x, double* y, int nObs, int Ord, double q)
Tabl - это указатель на массив, а остальное - входные параметры.
При вызове из основной программы функция работает, массив заполняется (проверял путём вывода на консоль), возвращает длину массива и указатель. Но вот при попытке считать данные по этому указателю возникает ошибка, программа зависает.
Сейчас попробовал переделать функцию таким образом:
Код:
double* inTabl(double* x, double* y, int nObs, int Ord, double q)
,
т.е. теперь указатель на массив явно определён как возвращаемое значение.
Как ни странно, в таком виде всё работает отлично.
Подскажите пожалуйста в чём тут может быть дело? (память выделяю через malloc(), освобождаю уже в основной программе)