При первоначальном выделении a
выделяется только 4 байта (в 32-разрядной архитектуре).Должно быть:
aq = (a*)malloc(sizeof(a));
И wakata
не было инициализировано: Может быть, это:
aq->wakata = (b*)malloc(sizeof(b));
И для него потребуется также соответствующая свободная до освобождения aq
.
free(aq->wakata);
И так как у вас есть указатели на целые числа, их также необходимо будет разместить (you
и me
).Но не ясно, если это ваша цель.Вам, вероятно, следует удалить *
из объявлений int, чтобы они были просто int
членами, а не указателями на int.