Dubbi sulla correttezza del codice

Dubbi sulla correttezza del codice

Il codice che ho creato potrebbe avere dei problemi, in particolare:

  • nella funzione sistemaoperativo() non sono sicuro che si possano ritornare così le stringhe.

  • nella funzione salvaServer ho dei dubbi sull’istruzione Tcloud cursore=pc;

  • non sono sicuro che nella creazione dello stream per il file sia possibile usare “a+” al posto di “w” (a+ serve a inserire in coda).

      typedef enum Tsistoper{ WIN, MAC, LINUX}Tsistemoper;
    
      typedef char Stringa[20];
    
      typedef struct Tserver{
        Stringa hostname;
        int numCPU, ram;
        Tsistemoper so;
      }Tserver;
    
      typedef struct Tcloud{
        Tserver server;
        Tcloud *next, *prev;
      }Tcloud;
    
      int rand(min, max){
      	return rand()%(max-min+1)+min;
      }
    
      string sistemaoperativo(Tserver* server){
      	switch(server.so){
      		case 0: return "WIN";
      		case 1: return "MAC";
      		case 2: return "LINUX";
      	}
      }
    
      void salvaServer(Tcloud* pc){
      	Tcloud cursore=pc;
      	while(cursore){
      		if(cursore->server.ram>8 && cursore->server.numCPU=8){
      			//salvataggio su file
      			FILE *f;
      			f=fopen("server.txt","a+");
      			if(f){
      				fprintf(f, "%s::%s CPU=%d RAM=%d \n",cursore->server.hostname, sistemaoperativo(cursore->server), cursore->server.numCPU, cursore->server.ram);
      			}
      			
      		}
      		cursore=cursore->next;
      	}
      }
    
      int main(int argc, char** argv) {
      	Tserver server;
      	Tcloud pc=new Tcloud;
      	inserisciServer(pc, server);
      	return 0;
      }

Nella funzione sistemaOperativo usi server con . ma è un puntatore, usa ->
Nel Tcloud cursore = pc hai dimenticato *, Tcloud *cursore = pc
Per aprire il file a va bene, il + non serve (è per leggerlo)

1 Mi Piace