Получаю следующее:
Program received signal SIGSEGV, Segmentation fault.
0x08048e6a in k () at test.c:18
18 printf("m = %d\n", A_CAST(l->data)->m);
Как правильно получить доступ к структуре в GSList? Где ошибка? Спасибо.
typedef struct
{
int m;
} A;
void k()
{
#define A_CAST(l) ((A *)l)
GSList* l = g_slist_alloc();
g_assert(l != NULL);
A* a = g_new(A, 1);
a->m = 100;
l = g_slist_append(l, a);
printf("m = %d\n", A_CAST(l->data)->m);
g_slist_foreach(l, (GFunc)g_free, NULL);
g_slist_free(l);
}
int main(int argc, char** argv)
{
k();
return 0;
}

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Объясните сие явление! (2002)
- Форум gnubiff (2006)
- Форум Posix Threads (2005)
- Форум что не так в использовании структуры (2008)
- Форум Помогите разобраться с сигналами (2003)
- Форум C. Парсер конфига (2005)
- Форум GLX - сегфолт на запросе glXGetFBConfigs (2011)
- Форум Учебный исходник Си вываливается с Segmentation fault. (2012)
- Форум Запуск самосгенерированного кода на Си в Linux (2007)
- Форум segmentation fault (2006)