Perche' questo pezzo di codice non funziona??
char ** comandi = (char **)malloc(sizeof(char*)*MAXDIM);
int j = 0;
int valuta(char * msg)
{
int numPar = 0;
comandi[j] = (char*)malloc(sizeof(char)*MAXDIM);
comandi[j] = strtok(msg, " ");
while(comandi[j] != NULL)
comandi[++j] = strtok(NULL," ");
numPar = j;
if(!strcmp(comandi[0],"print")) return 2;
else if(!strcmp(comandi[0],"display")) return 3;
else if(!strcmp(comandi[0],"save")) return 4;
else if(!strcmp(comandi[0],"load")) return 5;
else if(!strcmp(comandi[0],"exit")) return 6;
else if(!strcmp(comandi[0],"help")) return 7;
else return 0;
}
e' una funzione che come potete vedere, a seconda del comando digitato ritorna un intero diverso.
Io praticamente quando digito da tastiera un comando, prendo la stringa e faccio switch(valuta(comando)) e a seconda di cosa ho digitato mi da una cosa diversa. Se ritorna 0, poiche' non corrisponde a nessuno dei comandi che valuto, mi stampa una frase di errore... Ecco..
Come mai mi stampa SEMPRE la frase di errore??
Cosa c'e' che no nva nella mia strcmp?? Cosa sbaglio? Quali potrebbero essere i casi per cui non funziona?

Rispondi quotando
non ci posso credere... non puo' essere per una cavolata del genere.... sono giorni che ci impazzisco!!! :berto:
Grazie ancora!
