почему так происходит?
str
и word
-- это переменные размером в один символ, а в строке char delimeters[6] = " .,!?;"
отсутствует 0-терминатор. Поэтомуscanf("%s", &str);
вылезет за пределы str
если ввести здесь что угодно.strcat(&word, &c);
вылезет за пределы word
если в c
будет не пустая строка. А в c
будет неизвестно что, потому что c = getchar()
не добавляет в эту строку 0-терминатор.strchr(delimeters, c);
может вернуть что угодно, если c
не входит в delimiters
. Почему можно не указывать virtual в файле реализации?