iagoac / mc202

Disciplina MC202 - Estruturas de Dados
GNU General Public License v3.0
17 stars 13 forks source link

Exemplo da aula 10 #47

Closed Rebeca-Lie-Yatsuzuka-Silva closed 3 years ago

Rebeca-Lie-Yatsuzuka-Silva commented 4 years ago

Testando o código do primeiro exemplo da aula 10

#include <stdlib.h>
#include <stdio.h>

typedef struct No {
    int dado;
    struct No *prox;
} No;

typedef struct No * p_no;

p_no criar_lista(){
    return NULL;
}

void destruir_lista(p_no lista){
    if (lista != NULL){
        destruir_lista(lista -> prox);
        free (lista);
    }
}

p_no adicionar_elemento(p_no lista, int x){
    p_no novo;
    novo = malloc(sizeof(No));
    novo -> dado = x;
    novo -> prox = lista;
    return novo;
}

void imprime(p_no lista){
    p_no atual;
    for(atual = lista; atual != NULL; atual = atual -> dado)
        printf("%d \n", atual -> dado);
}

int main() {
    int num;
    p_no lista;
    lista = criar_lista();
    do {
        scanf("%d", &num);
        if (num > 0)
        lista = adicionar_elemento(lista,num);
    } while (num > 0);
    imprime(lista);
    return 0;
}

Apareceu a mensagem:

main.c: In function 'imprime':
main.c:32:45: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     for(atual = lista; atual != NULL; atual = atual -> dado)
                                             ^

O que fazer para corrigir esse problema?

GuilhermePascon commented 4 years ago

Creio que o correto seria fazer: for(atual = lista; atual != NULL; atual = atual -> prox)

Rebeca-Lie-Yatsuzuka-Silva commented 4 years ago

É verdade, acabei lendo errado o slide.