Так что я написал эту функцию:Uninitialized символ недобросовестный @
int getword(char *fmt, int delim, int max, FILE *f)
{
int c, x = 0;
while (((c = getc(f)) != EOF) && (c != delim) && (x < max))
fmt[x++] = c;
return x;
}
Всякий раз, когда я проверить функцию, всегда есть @
в конце.
buf = color [email protected]
/* segmentation fault */
и независимо от того, что я сделал, чтобы изменить его значение переменной всегда будет заканчиваться @
. Я исправил эту проблему путем инициализации переменной:
char buf[100] = {0};
, но с тех пор, как я задавался вопросом, почему персонаж всегда был @
если неинициализированная char
может быть что-нибудь в своем диапазоне. Почему он по умолчанию равен @
?
Неопределенное поведение не определено. –