Olá Guj, tudo bem com os senhores?
Bem, eu tenho um projeto que utiliza listas em C, fiz o código inteiro, ele compila e tudo mais… Entretanto, após ele rodar, o programa simplesmente para de funcionar. Gostaria de pedir ajuda para identificar o erro no meu código. Desde já, forte abraço e obrigado.
Quando ele recebe o 32 e imprime, ele pega o próximo elemento e tenta imprimir. Como o elemento depois de 32 é nulo, gera um erro durante a execução do programa após tentar imprimir.
Exemplo:
void imprime (Lista* x){
Lista* i;
//for(i = x; i != NULL; x = x->prox)
//printf("%d ",x->info);
printf("%d ", x->info); //Imprime o 53.
x = x->prox; //Recebe o próximo (32).
printf("%d ", x->info); //Imprime o 32.
x = x->prox; //Recebe o próximo (NULL).
//Ele tenta imprimir, mas não há nada nessa posição!
printf("%d", x->info);
}
Para corrigir, coloque esse último printf como comentário ou retire-o.