User talk:MicheleN
Jump to navigation
Jump to search
Caro MicheleN,
perchè vuoi porre cmpvalue=1?
è inutile.
struct word *addword(char *word, struct word *wlist) {
struct word **scan;
int cmpvalue /* = 1 useless */;
for (scan = &wlist;
*scan != NULL && ((cmpvalue = lenalphacmp(word, (*scan)->word)) > 0);
scan = &((*scan)->next))
;
if (scan != NULL && cmpvalue == 0)
(*scan)->count ++;
else {
struct word *new = malloc(sizeof(struct word) + strlen(word) + 1);
if (new) {
new->next = *scan;
new->count = 1;
strcpy(new->word, word);
*scan = new;
}
}
return wlist;
}
Se scan è NULL esce subito dal ciclo e cmpvalue ha un valore indefinito, ma cmpvalue non viene valutato nell'if che segue (per cortocircuitazione dell'&&). Se scan non è NULL, cmpvalue viene assegnato. no?