Io con Netbeans devo mettere i watch nonostante ho dichiarato la dimensione.
se posoo chiederti un altro aiutino:
con queste due funzioni:
int risnumerico(Quiz *qn, char *t){
int j,dim,ris,r=0;
char *risp,del[]="#";
dim = strcspn(t,del);
risp = (char*)malloc(dim*sizeof(char));
strncpy(risp,t,dim);
risp[dim] = '\0';
ris = atoi(risp);
free(risp);
for (j=0;j<qn->spec.number.n;j++){
if (ris == qn->spec.number.solutions[j]){
r += qn->score;
break;
}
}
return r;
}
int ristestuale(Quiz *qt, char *s){
int h,lenght,p=0;
char *rispt,del[]="#";
lenght = strcspn(s,del);
rispt = (char*)malloc(lenght*sizeof(char));
strncpy(rispt,s,lenght);
rispt[lenght] = '\0';
for (h=0;h<qt->spec.word.n;h++){
if (strcmp(rispt,qt->spec.word.solutions[h]) == 0){
p += qt->score;
break;
}
}
free(rispt);
return p;
}
il debugger mi da un errore di SIGTRAP.
entrambe devono prendere una parte della stringa in input e confrontarla con le n soluzioni(nella prima le soluzioni sono int e nella seconda stringhe).
per la seconda funzione penso che il problema sia dovuto alla strcmp che vuole le due stringhe const(a proposito ho capito perchè la strtok non funzionava) però per la prima non capisco proprio(sarà anche che oltre a C sto preparando altri due esami).