아하
생활

생활꿀팁

올곧은애벌래221
올곧은애벌래221

scanf 와 scanf_s와의 창점이 무엇인가요?

Vscode 상에서 scanf는 오류가 나서 질문드립니다.

책에서는 scanf를 쓰여있어 입력하여 컴파일을 했는데 scanf_s로 바꿔 입력하라고 오류가 뜨더군요

왜 이런 오류가 뜨는지 알수있을까요?

55글자 더 채워주세요.
1개의 답변이 있어요!
  • 단호한소쩍새17
    단호한소쩍새17

    안녕하세요

    scanf같은 경우 버퍼오버플로우에 취약해서 scanf_s를 사용하도록 권장합니다.

    scanf_s는 문자열을 쓸때 버퍼 메모리의 크기를 3번째 인자로 미리 설정하여서 버퍼 오버플로우를 방지합니다.

    기존의 scanf로 출력하고 싶을때는 소스파일을 만드실때 security를 해제하시거나

    소스코드 첫부분에 #pragma warning(disable:4996)을 추가하면 출력 될겁니다.