diffère dans les niveaux d'indirection de 'int ()' (C)
Ce code me donne cette erreur, dont je ne comprends pas. Je ne peux même pas lancer le programme. Pouvez-vous m'aider à corriger cette erreur, s'il vous plaît? Si vous ne comprenez pas quelque chose dans le code, de le dire.
error C2040: 'CancelarPedido' : 'ppedido (ppedido)'
diffère dans les niveaux d'indirection de 'int ()'
printf("\nIntroduza opcao:");
scanf("%d",&opc);
switch(opc){
case 1: lista = NovoPedido(lista);break;
case 2: lista = CancelarPedido(lista);break;
case 3: printf("Falta implementar a funcao.");break;
case 4: printf("Falta implementar a funcao.");break;
}
}while(opc!=5);
return lista;
}
ppedido CancelarPedido(ppedido lista)
{
ppedido actual, anterior = NULL;
char id[5];
actual = lista;
if(lista == NULL)
printf("\nNao ha pedidos na fila de espera...");
else
{
printf("\nIntroduza o ID do pedido que pretende cancelar: ");
scanf("%s", id);
while(actual != NULL && ((strcmp(actual->id, id)) != 0)){
anterior = actual;
actual = actual->prox;
}
if(actual == NULL){
printf("\nERRO - Nao existe nenhum pedido com o ID introduzido.");
return lista;
}
if(anterior == NULL){
lista = actual->prox;
printf("\nPedido cancelado com sucesso...");
}
else{
anterior->prox = actual->prox;
printf("\nPedido cancelado com sucesso...");
}
free(actual);
return lista;
}
}
ce type est ppedido?
ppedido est un type de liste, si c'est ce que tu veux dire.
Ce type de données est la première pièce de votre code a déclaré le retour?
typedef struct pedido pedido, *ppedido; struct pedido{ char id[5]; int prioridade; int mesa, n_pratos; struct prato *prato[TAM]; ppedido prox; }; struct prato{ char id[5]; };
Difficile de répondre correctement sans un SSCCE.
ppedido est un type de liste, si c'est ce que tu veux dire.
Ce type de données est la première pièce de votre code a déclaré le retour?
typedef struct pedido pedido, *ppedido; struct pedido{ char id[5]; int prioridade; int mesa, n_pratos; struct prato *prato[TAM]; ppedido prox; }; struct prato{ char id[5]; };
Difficile de répondre correctement sans un SSCCE.
OriginalL'auteur Marco | 2012-06-23
Vous devez vous connecter pour publier un commentaire.
Vous appelez CancelarPedido avant de vous annoncé. Vous avez besoin de réorganiser le code ou ajouter une déclaration pour CancelarPedido.
Sans déclaration de CancelarPedido dans la portée, la valeur par défaut int CancelarPedido(). Vous obtenez le message d'erreur car lista est déclaré être un pointeur, mais CancelarPedido est déclarée pour retourner un int.
Euh, si c'était predeclared alors nous ne les verrez pas ce message d'erreur.
C'est ça, Jim. Merci, c'était très utile.
Vous êtes les bienvenus. J'ai ajouté plus de détails, pour la postérité.
Alors, comment dois-je déclarer afin de retourner une liste? Merci une fois de plus.
OriginalL'auteur Jim Balter