Функция scanf считается небезопасной для современных программ, потому что может привести к переполнению буфера. 23 Это может привести к сопутствующим неприятностям, вплоть до взлома программы хакерами. 2
Например, при использовании scanf для чтения строк (комбинация scanf + '%s') нет ограничений на то, что она будет считывать, что может вызвать переполнение буфера. 3
Для частичного решения этих проблем компиляторы Microsoft диагностируют использование scanf и по умолчанию используют функцию scanf_s. 3
Чтобы отключить предупреждение об использовании потенциально небезопасной функции, можно определить макро CRTSECURENOWARNINGS перед включением стандартных заголовочных файлов. 2