У меня есть эта функция для моего связанного списка, и я должен вернуть ее как журнал (структура). когда я запустил valgrind, я обнаружил, что у меня есть утечка памяти, которая является mallo c. Мне интересно, как я могу освободить entry
? или есть способ вернуть данные внутри записи без создания нового объекта (? idk, как он называется)
Journal *removeStart(LinkedList *list) {
Node *front;
Journal *entry = malloc(sizeof(Journal));
front = list->head;
entry = front->data;
if (list->head==NULL) {
entry = NULL;
}
list->head = list->head->next;
front->next = NULL;
if (front == list->head) {
list->head = NULL;
}
free(front);
return entry;
}
Journal *removeLast(LinkedList *list) {
Node *end;
Journal *entry = malloc(sizeof(Journal));
if (list->head == NULL) {
entry = NULL;
}
end = list->head;
while (end->next != NULL) {
end = end->next;
}
if (list->head->next==NULL) {
entry = list->head->data;
list->head = NULL;
}
else {
entry = list->head->data;
end->prev->next = NULL;
}
free(end);
return entry;
}
моя структура для журнала
#define SIZE 102
typedef struct {
int day;
int month;
int year;
char entry[SIZE];
} Journal;