Quick actions

cmd+k|ctrl+k

Navigation

Languages

scanf의 부가적인 설명

Snippet info

Language

C

Visibility

public

Author

jiseong

Created

2020-04-19T06:35:50Z

Updated

2020-04-19T06:35:50Z

    // scanf의 부가적인 설명

  /*scanf 가 버퍼 오버플로우에 취약한 문제때문에 scanf_s 을 대신 사용하도록 합니다.
    버퍼 오버플로우란 쉽게 말해 할당된 버퍼에 들어갈 수 있는 양보다 더 많은 양을 넣게 되면 프로그램이 멈추는데 
    이것을 해커들이 이용했기 때문에 문제를 해결하기 위해 scanf_s가 등장했다고 이해하시면 됩니다.

    scanf_s 가 scanf 에 비해 다른 점은 문자열을 쓸 때 버퍼 메모리의 크기를 3번째 인자로 미리 설정하여서 
    버퍼 오버플로우를 방지합니다.*/

    // 기존의 scanf를 사용하고 싶다면 #define _CRT_SECURE_NO_WARNINGS 를 넣어주면 _s가 없는 것이 _s가 있는 것으로 자동으로 맵핑이 됩니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
    int a;
    printf("값을 입력하세요 : ");
    scanf("%d", &a);
    printf("입력된 값 : %d", a);

    return 0;
}
INFO