我正在编写一个函数,该函数返回一个新列表,其中两个两个给定的升序排序列表中都包含元素,而没有任何值重复。
这段代码一直在给我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;
}
Here,您可以找到完整的代码。