Dieser Code gibt mir diesen Fehler, den ich nicht verstehe. Ich kann das Programm nicht einmal ausführen. Kannst du mir bitte helfen, diesen Fehler zu beheben? Wenn du irgendetwas im Code nicht verstehst, sag es bitte.
Fehler C2040: 'CancelarPedido' : 'ppedido (ppedido)'
unterscheidet sich in den Indirektionsstufen von '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;
}
}
0 Stimmen
Pedido ist ein Listen-Typ, wenn das ist, was Sie meinen.
0 Stimmen
Welcher Datentyp wird beim ersten Teil Ihres Codes deklariert, um zurückzukehren?
0 Stimmen
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]; };
0 Stimmen
Schwer richtig zu beantworten ohne einen SSCCE.
0 Stimmen
Ich hatte keine Schwierigkeiten, sie zu beantworten.
0 Stimmen
Ich habe in einer "Header-Datei" eine Struktur mit einem Zeiger darauf, dem ppedido erstellt. Dann deklariere ich die Liste in der Hauptfunktion und schicke sie an eine andere Datei, in der dieser Code steht, den ich präsentiere. Das Problem ist, dass ich die Liste genauso gut von Funktion zu Funktion senden kann, aber wenn ich diese Funktion aufrufe, zeigt mir das Programm diesen Fehler. Ich habe keine Ahnung warum.
0 Stimmen
Versuchen Sie, meine Antwort zu lesen, und dann werden Sie eine Vorstellung davon haben, warum. Ohne eine Deklaration von CancelarPedido im Bereich, wird standardmäßig auf int CancelarPedido() zurückgegriffen.
0 Stimmen
Lektionen im Verständnis von Code: Der Code bezieht sich auf einen pedido, was Portugiesisch für "Bestellung" ist (und es gibt Funktionen für neue Bestellung und Bestellung stornieren). ppedido ist offensichtlich ein Zeiger auf eine Struktur, die eine Bestellung darstellt.