Przenosisz quote
do swojego inicjatora for
, który jest nieprawidłowy i spowoduje naruszenie zasad dostępu, ponieważ usuwasz go z części *quote != NULL
.
Semantycznie NULL
i '\0'
są równoważne, ale syntaktycznie wolałbym to. Zauważ, że za pomocą tego podejścia utrzymujesz wskaźnik na (początku) ciągu znaków.
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);
}
alternatywnie za pomocą wskaźnika:
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]);
}
(Uwaga semantyka sizeof
zmienia się, gdy wartość quote
nie jest znana w czasie kompilacji)
Aby wyciąć do punktu, "quote = 0" jest niepoprawne. – Zong
Dlaczego nie używać 'unsigned int'? – Recker