Следующая строка, вероятно, доставит вам горе:
Node newNode = malloc(sizeof(Node));
Node
- это тип указателя, поэтому вы выделяете достаточно места только для хранения указателя, а не всего NodeStruct
.Я думаю, что вы хотите сделать, это:
Node newNode = malloc(sizeof(*newNode));
или
Node newNode = malloc(sizeof(NodeStruct));
Та же проблема существует для Queue
, вам выделено только место для хранения указателя, а неQueueStruct
.Что-то еще, что я только что заметил, это то, что в ваших NodeStruct
и QueueStruct
вы используете тип Node*
, который на самом деле NodeStruct **
, что, вероятно, не то, что вы хотите, так как Node
ужеуказатель.