Ошибка Visual Studio в C, необработанное исключение в 0xfefefefe

Я учусь писать на C в Visual Studio, и вот мой код,

#include<stdio.h>

int main() {
    char me[20]; 

    printf("What is your name?");
    scanf_s("%s", me);
    printf("darn glad to meet you, %s!\n", me);

    return(0);
}

Теперь, после ввода всего этого, я получаю сообщение об ошибке "Необработанное исключение в 0xFEFEFEFE в Project14.exe: 0xC00001A5: Обнаружена недопустимая процедура обработчика исключений (параметры: 0x00000003)"

1 ответ

Вы используете scanf_s() неправильно. Описанный в MSDN способ scanf_s("%s", me, sizeof me);

Также вы действительно должны проверить возвращаемое значение функции

if (scanf_s("%s", me, (unsigned)sizeof me) != 1) /* error */;

Также обратите внимание, что описание MSDN и описание стандарта C11 имеют только незначительные различия, за исключением того, что MSDN не информирует вас о том, что эта функция является необязательной для реализаций, соответствующих стандарту. Если вы намереваетесь запустить свой код не в Windows, вы можете добавить проверки на наличие функции или использовать какой-либо другой способ получения пользовательского ввода.

#ifdef __STDC_LIB_EXT1__
// use Annex K functions at will
#else
// do not use Annex K functions
#endif
Другие вопросы по тегам