Я пишу функцию, которая возвращает новый список с элементами, содержащимися в обоих заданных отсортированных списках по возрастанию, без повторения значений.Этот код дает мне LeakSanitazire: detected memory leaks
, и я не могу понять, чего мне не хватает.
intersezione.c
#include "intersezione.h"
#include <stdlib.h>
tlista intersezione(tlista lista1, tlista lista2){
tlista head = NULL;
tlista curr = NULL;
tlista tail_lista2;
while(lista1 != NULL){
tail_lista2 = lista2;
while(tail_lista2 != NULL){
if(lista1->valore == tail_lista2->valore){
if(head == NULL){
head = (tlista)malloc(sizeof(struct cella));
head->valore = lista1->valore;
head->next = NULL;
curr = head;
} else if(lista1->valore != curr->valore){
curr->next = (tlista)malloc(sizeof(struct cella));
curr = curr->next;
curr->valore = lista1->valore;
curr->next = NULL;
}
}
tail_lista2 = tail_lista2->next;
}
lista1 = lista1->next;
}
return head;
}
Здесь Вы можете найти весь код.