c언어 기초 scanf C4996 scanf maybe unsafe

조회수 432회

완전 기본적인 코드인데 왜 오류가 뜨는건지 모르겠어요 ㅜㅜㅜ

이미지

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    scanf()는 프로그래머의 실수로 인해 잘못된 동작을 발생할 확률이 높습니다. 그로 인해 공격자가 원하는 명령을 실행하는 수단으로 이용될 수 있으며 보안 취약합니다.

    그래서 Visual Studio에서는 기본적으로 scanf()를 허용하지 않고, scanf_s()를 사용하기를 강력히 권장합니다.

    C4996의 오류 메시지의 내용과 같이 scanf()를 사용하고 싶으면 다음과 같이 최상단에 _CRT_SECURE_NO_WARNINGS를 정의하거나, 프로젝트 속성에서 해당 전처리 매크로를 정의하면 됩니다.

    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    //..
    

    scanf_s()를 해당 사항에 대해서 사용하고자 하면 다음과 같이 작성할 수 있습니다.

    scanf_s("%d", &ysalary);
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)