Доброго времени суток есть функция, в которую я передаю указатели на списки. В функции я их заполняю и хочу использовать, но внутри функции они заполняются, после выхода из функции указатель на список всё равно равен NULL:
функция
int db_get_list_data(SQLHANDLE hDbc, LPTSTR szSQL, LPCTSTR szFmt, ...)
{
. . .
GList *list = va_arg(p_arg, GList *);
char * data = g_new(char, 256);
SQLGetData(hStmt, ++iParam, SQL_C_TCHAR, data, 1024, &cb);
list = g_list_prepend(list, data);
g_printf("Column: %d ----- %s\n", iParam, list->data);
. . .
return -1;
}
здесь list не пустой, заполнен данными, отладчиком остановился в строчке с return -1, посмотрел вывод в консоли - всё нормально, данные вывелись.
затем вызываю эту функцию в другом месте так:
GList * fid = NULL;
GList * fname = NULL;
GList * ftxt = NULL;
db_get_list_data(hDbc, query, "%s%s%s", fid, fname, ftxt);
т.е я передаю в функцию указатели на списки, в функции их заполняю, и ожидаю что по возвращении из функции они будут заполнены, а они - NULL. ЧЯДНТ? :(