Si sta riassegnando quote
nel proprio inizializzatore for
, che non è valido e causerà una violazione di accesso perché si sta effettuando il deferenziamento nella parte *quote != NULL
.
Semanticamente NULL
e '\0'
sono equivalenti, ma sintatticamente preferirei questo. Si noti che usando questo approccio si mantiene un puntatore (all'inizio) della stringa.
wchar const_t* quote = L"To be or not to be, that is the question.";
for(wchar_t* c = quote; *c != '\0'; c++) {
*c = tolower(*c);
}
alternativamente utilizzando un indice:
wchar const_t quote[] = L"To be or not to be, that is the question.";
for(size_t i = 0; i < sizeof(quote); i++) {
quote[i] = tolower(quote[i]);
}
(notare che la semantica di sizeof
cambia se il valore di quote
non è noto al momento della compilazione)
Per tagliare al punto, 'quote = 0' non è corretto. – Zong
Perché non usare 'unsigned int'? – Recker