10/10/17 13:40
fbotta
Ciao a tutti sono relativamente nuovo di qua.
ho piu problemi a capire come mai il mio programma non compila.
ho capito dove sbaglio ma non so come sistemare non essendo esperto di programmazione.
l'esercizio chiede di creare una funzione che dati i seguenti dati strutturati se il codice all'interno della lista è uguale a quello del puntatore a caratteri salva il nodo in un'altra lista e restituisce di return il numero di elementi nella lista.
questo è il mio codice:
mi da svariati errori, tutti probabilmente simili.
ad esempio
in questa riga di codice mi dice che non riesce a convertire char** in const char.
so che con strcmp devono essere const char ma come modifico il codice affinchè il problema si risolva?
oppure qua
dove l'errore è:[Error] cannot convert 'prodotto' to 'char*' for argument '1' to 'char* strcpy(char*, const char*)'
oppure
[Error] base operand of '->' has non-pointer type 'prodotto'
spero di non aver violato nessuna regola del regolamento.
grazie in anticipo per l'aiuto
francesco
ho piu problemi a capire come mai il mio programma non compila.
ho capito dove sbaglio ma non so come sistemare non essendo esperto di programmazione.
l'esercizio chiede di creare una funzione che dati i seguenti dati strutturati se il codice all'interno della lista è uguale a quello del puntatore a caratteri salva il nodo in un'altra lista e restituisce di return il numero di elementi nella lista.
questo è il mio codice:
#include <iostream> #include <cstring> using namespace std; struct prodotto { char* codice[13]; char* data[11]; float prezzo; int pi; unsigned int tipologia; }; struct lista{ prodotto informazioni; lista* next; }; int prendiprodottiinelenco(lista* L, char* codici[12], prodotto prods[], int size) { int prodottitrovati=0, i=0; lista* testa; testa=L; for(i=0;codici[i]!=0;i++) //la condizione puo anche essere i=size, forse è piu giusto { for(;testa->next!=NULL;testa=testa->next) { if(strcmp(testa->informazioni->codice , codici[i])==0) { strcpy (prods[i],testa); prodottitrovati++; break; } if(strcmp(prods[i]->codice , testa.informazioni.codice)!=0) { prods[i]->codice = 0; } } testa=L; } return prodottitrovati; } }
mi da svariati errori, tutti probabilmente simili.
ad esempio
if(strcmp(testa->informazioni->codice , codici[i])==0)
in questa riga di codice mi dice che non riesce a convertire char** in const char.
so che con strcmp devono essere const char ma come modifico il codice affinchè il problema si risolva?
oppure qua
strcpy (prods[i],testa);
dove l'errore è:[Error] cannot convert 'prodotto' to 'char*' for argument '1' to 'char* strcpy(char*, const char*)'
oppure
if(strcmp(prods[i]->codice , testa.informazioni.codice)!=0)
[Error] base operand of '->' has non-pointer type 'prodotto'
spero di non aver violato nessuna regola del regolamento.
grazie in anticipo per l'aiuto
francesco
aaa