Fala pessoal, não estou entendendo o porquê deste código estar imprimindo um valor a mais esta é a saída: 2
1
3
4
0
Ele não deveria imprimir esse 0.
esse é conteúdo do main
main()
{
Lista2 *l = cria();
l = insere(l,4);
l = insere(l,3);
l = insere(l,1);
l = insere(l,2);
print1(l);
}
a função de imprimir q estou utilizando
void print1(Lista2 *l)
{
Lista2 *aux = l;
while(aux != NULL)
{
printf("%d\n",aux->info);
aux = aux->prox;
}
}
esta a função de inserção
Lista2* insere (Lista2* l, int v)
{
Lista2* novo = (Lista2*) malloc(sizeof(Lista2));
novo->info = v;
novo->prox = l;
novo->ant = NULL;
/* verifica se lista não está vazia */
if (l != NULL)
l->ant = novo;
return novo;
} Edit: Descobri o erro, era na função de inicialização, onde eu sempre estava alocando espaço e retornando esse ponteiro ao invés de retornar NULL