EnzoFerber
(usa FreeBSD)
Enviado em 13/04/2011 - 09:29h
Então,
Dei uma olhada no código, e percebi que você estava assistindo Simpsons enquanto fazia...
Falta de atenção foi seu erro... O resto tá beleza.
Olha sua função main:
main() {
Lista* l;
Lista* l2;
int n;
l = lista_cria();
l = lista_insere(l, 23);
l = lista_insere(l, 45);
l = lista_insere(l, 67);
l = lista_insere(l, 89);
l = lista_insere(l, 1011);
printf("\nLista original:\n");
lista_imprime(l);
l2 = lista_insere(l, 30);
l2 = lista_insere(l, 44);
l2 = lista_insere(l, 69);
l2 = lista_insere(l, 90);
l2 = lista_insere(l, 1013);
printf("\nLiberando a memoria...\n");
l = lista_libera(l);
printf("\nVerifica se os caracteres são iguais:\n");
igual(l1,l2);
getch();
}
Tirando a declaração do main e o retorno... :)
Essa parte:
lista_imprime(l);
l2 = lista_insere(l, 30);
l2 = lista_insere(l, 44);
l2 = lista_insere(l, 69);
l2 = lista_insere(l, 90);
l2 = lista_insere(l, 1013);
Você não criou a 'l2'
E você coloca a lista de inserção a lista 'l'
lista_insere(l, 30);
...
Você deveria ter feito:
l2 = lista_cria();
l2 = insere(l2 ....
http://pastebin.com/XeZQ4pST
A função igual() retorna 0 se as listas forem diferentes, e 1 se elas forem iguais.
Espero ter ajudado,
Qualquer coisa posta denovo.
Enzo Ferber
[]'s