Э-э ... Да, память потеряна.Конечно, это потеряно, так как вы "пропустили код деллока"!
Как вы могли ожидать, что кто-нибудь ответит на ваш вопрос, когда вы "не указали код освобождения"?Сама суть вашего вопроса в том, верен ли ваш код деэллока.И вы решили оставить это без внимания?
Кроме того, в вашем коде есть немало вещей, которые не имеют большого смысла.Что должно означать
typedef struct ModelArray {
...
Model *source;
...
} Model;
?Почему вы печатаете struct ModelArray
как Model
?Фактически, ваш код даже не скомпилируется, поскольку Model *
используется внутри структуры, где он еще не объявлен.Вы также используете тип ModelArray
в своем коде, хотя в действительности такого типа нет.У вас есть struct ModelArray
, но не просто ModelArray
.Код, который вы разместили, не является реальным кодом.Разместите реальный код, пожалуйста.(Очевидно, это должно было быть typedef struct ModelArray { ... } ModelArray;
с Model
, определенным в другом месте.)
Наконец, в качестве несвязанной заметки, //
comments является функцией C99.В C99 тип возвращаемого значения функции не может быть опущен (нет правила «неявного int» в C99), что означает, что вы должны объявить вашу main
функцию как int main
.