Есть ли этап инициализации, который я пропускаю?
Да, l1c2l1d
неинициализирован в вашем коде. Разыменование это означает разыменование NULL
(поскольку l1c2l1d
является глобальным). Попробуйте это:
l1c2l1d = malloc(sizeof *l1c2l1d);
l1c2l1d->front...
РЕДАКТИРОВАТЬ В свете последнего редактирования
У вас есть это:
main()
{
QUEUE *l1c2l1d; /*L1 Controller to L1 Data */
l1c2l1d->front = malloc(sizeof *l1c2l1d);
}
В этом случае l1c2l1d
неинициализирован, это указывает на мусор. Попробуйте это ( скопируйте и вставьте на этот раз ):
main()
{
QUEUE *l1c2l1d; /*L1 Controller to L1 Data */
l1c2l1d = malloc(sizeof *l1c2l1d);
l1c2l1d->front = malloc(*l1c2l1d->front);
}