Ошибка, которую я вижу здесь:
char* uppercasedStr = malloc(sizeof str);
Вы не можете использовать sizeof()
, чтобы получить длину строки.Вам нужно использовать strlen()
:
char* uppercasedStr = malloc(strlen(str) + 1); // Need +1 for terminating null
Вот еще одна и та же ошибка:
char* copiedStr = malloc(sizeof uppercaseStr);
должно быть:
char* copiedStr = malloc(strlen(uppercaseStr) + 1);
sizeof(str)
дает вам только размер char
указателя, а не длину всей c-строки.
Также обратите внимание, что я пропустил sizeof(char)
.Это потому, что sizeof(char)
определено как 1 в C. Поэтому это не нужно.