Ciao a tutti.
Devo fare un programma web in c. In pratica dovrei fare un client e un server per le aste online.
Il problema comunque non è sul funzionamento tra client e server. Posto la funzione che mi da problemi
offerta rilancia(utente u){
offerta *of;
char buff[MAXLINE];
do{
if(of == NULL) printf("Il numero dell'offerta non è valido\n");
memset(buff,'\0',MAXLINE);
printf("Digitare il numero dell'offerta: ");
fflush(stdout);
fgets(buff,MAX,stdin);
}while((of=cercanumero(atoi(buff)))==NULL);
printofferta(*of); //fino a qua tutto bene
memset(buff,'\0',MAXLINE);
printf("Quanto vuoi offrire: ");
fflush(stdout);
fgets(buff,MAXLINE,stdin);
printofferta(*of); //qua la struttura è cambiata
of->uoff = atoi(buff);
of->offerente = u;
printofferta(*of); //qu cambia ancora
return *of;
}
vi posto le strutture
typedef struct Utente{
int id;
char nome[MAX];
char password[MAX];
int connesso;
}utente;
typedef struct Offerta{
int numoff; //numero dell'offerta
utente proprietario; //utente che offre l'oggetto
char oggetto[MAXLINE]; //nome dell'oggetto
char descrizione[MAXLINE]; //descrizione dell'oggetto
struct timeval post; //riferisce il momento in cui è stato postato l'oggetto
int durata; //durata dell'offerta
int scash; //prezzo di partenza
int uoff; //ultima offerta sull'oggetto
utente offerente; //utente che ha fatto l'ultima offerta
}offerta;
e la funzione printofferta
void printofferta(offerta of){
printf("N° offerta: %d\nProprietario: %s\nOgetto: %s\nDescrizione: %s\nPrezzo di partenza: %d\nDurata in secondi: %d\nUltima offerta: %d da %s\n",
of.numoff,of.proprietario.nome,of.oggetto,of.descrizione,of.scash,of.durata,of.uoff,of.offerente.nome);
printf("-----------------------------------\n");
}
Dalla seconda printofferta i campi di *of cambiano da struct timeval post fino all'ultimo. poi dopo la seconda printofferta aggiorno i campi uoff e offerente e infatti quelli assumono i valori giusti.
Non capisco come possono cambiare se nemmeno li tocco! Idee?