Ir ao conteúdo
  • Cadastre-se

smfraga

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Estou com uma dúvida sobre a correta alocação de memoria em meu codigo. Quando vejo o print dos enderecos dos proximos nós, aparece o mesmo valor. Eu quero encadear a lista para armazenar uma sequencia de inteiros, sendo o int inserido pelo usuario sendo destinado ao final da lista. Tentei seguir alguns manuais de lista encadeada, mas me perdi nessa parte. Onde estaria(m) o(s) erro(s)? Segue o codigo: #include <stdlib.h> #include <stdio.h> typedef struct noh noh; struct noh { int elem; noh*prox; }; int main () { noh *p, *inicio=NULL, *q; int n, i, a; //inicio->elem=22; //inicio->prox=p; inicio = (noh*)malloc(sizeof(noh)); p = (noh*)malloc(sizeof(noh)); q = (noh*)malloc(sizeof(noh)); p=inicio; q=inicio->prox; printf("Quantos elementos serao inseridos para serem reordenados?"); scanf (" %d", &n); for (i=0; i<n; i++) { if(p==NULL || q==NULL)///teste de alocacao de memoria { printf("Falha na alocacao de memoria!\n"); system("pause"); exit(1); } if(i==0) { printf ("Digite o primeiro elemento: "); scanf(" %d", &inicio->elem); printf (" inicio -> prox %d\n", inicio->prox); q=inicio->prox; } else { p=(noh*)malloc(sizeof(noh)); q=(noh*)malloc(sizeof(noh)); printf ("\nDigite o %d-esimo numero: ", i+1); scanf (" %d", &q->elem); printf("q->prox %d\n", q->prox); p=q; q=q->prox; } } q->prox=NULL; p=inicio->prox; while(p->prox != NULL) { printf("%d\n", p->elem); p = p->prox; } system ("pause"); return 0;

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...