Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Alguém pode me ajudar? Tá dando um erro na função listar
ERRO: struct Sapato' has no member named 'topo'
Pelo que entendi, o erro indica que o ponteiro topo não faz parte da struct sapato, mas eu declarei topo como sendo um ponteiro para sapato, não está correto?
//DIRETIVAS #include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <conio.h>#define MAX 21//ESTRUTURAtypedef struct Sapato{ char marca[MAX]; char modelo[MAX]; char cor[MAX]; int num; struct Sapato prox; }; //VARIÁVEIS GLOBAISchar marca[MAX], modelo[MAX], cor[MAX];int num;Sapato topo;//ponteiro para o topo da pilha//FUNÇÃO AUXILIAR LER DADOS void dados_sapato(){ system("cls"); printf ("\nEntre com a marca do sapato: "); fflush (stdin); fgets (marca, MAX, stdin); printf ("Entre com o modelo do sapato: "); fflush (stdin); fgets (modelo, MAX, stdin); printf ("Entre com a cor do sapato: "); fflush (stdin); fgets (cor, MAX, stdin); printf ("Entre com o numero do sapato: "); fflush (stdin); scanf ("%d", &num);}//FUNÇÃO INSERIRvoid push_sapato(){ dados_sapato();//chamando a função Sapato pnovo=(Sapato)malloc(sizeof(Sapato));//alocando memoria para os novos elementos strcpy(pnovo->marca,marca); strcpy(pnovo->modelo,modelo); strcpy(pnovo->cor,cor); pnovo->num=num; pnovo->prox=NULL; if(topo==NULL)//se a pilha estiver vazia topo=pnovo; //topo recebe o novo elemento else{ pnovo->prox=topo; topo=pnovo; }}//FUNÇÃO EXCLUIRvoid pop_sapato(){ Sapato aux; if(topo==NULL){ printf ("\n\nErro, pilha de sapatos vazia.\n\n"); return; } else{ aux=topo; topo=topo->prox; free(aux); }}//FUNÇÃO LISTARvoid listar_sapatos(){ Sapato aux; aux=topo; while(aux!=NULL){ printf ("\t\t\tDADOS SAPATO\n\n"); printf ("Marca: %s", aux->marca); printf ("Modelo: %s", aux->modelo); printf ("Cor: %s", aux->cor); printf ("Numero: %d", aux->num); aux=aux->topo; } }//FUNÇÃO PRINCIPALint main(){ char op; topo=NULL;//incializando a pilha como vazia do{ system("cls"); printf ("\t\t\tFABRICA DE SAPATO PALOMA & CIA"); printf ("\n\n(E)mpilhar Sapato\n"); printf ("(L)istar Estoque Sapatos\n"); printf ("(D)esempilhar Sapato\n"); printf ("(S)air do Programa\n\n"); printf ("Digite a opcao: "); op=toupper(getche()); switch(op){ case'E': push_sapato(); break; case'L': listar_sapatos(); break; case'D': pop_sapato(); break; case'S': exit(0); default: printf ("\n\nOpcao invalida, digite novamente.\n\n"); } system("PAUSE"); }while (op!='S'); return (0);}
Carregando comentários...