(C언어) scanf 함수 사용시 C4996 에러
#include int main() { char data[2] = ""; scanf("%s", data); printf("%s\n", data); return 0; } 에러 메세지를 보면 scanf 대신 scanf_s로 사용하라고 하는데 그 이유는 scanf가 구조적으로 안정적이지 않아 여러 위험을 안고 있는 함수이기 때문이다. 그러한 문제점을 보완하여 나온 것이 scanf_s 이다. VS2010 이상 컴파일러에서는 scanf_s 함수를 사용하도록 권장하고 있다. 그렇다면 scanf_s 는 어떤 점이 달라진 것일까. 기존 scanf 는 char 형이나 문자열을 넣을 때 받을 수 있는 문자열의 사이즈를 넣지 않아도 사용이 가능했었다. 그로인한 문제점이 바로 오버플로우(overflow)이다. #pragma ..
컴퓨터 언어 공부/C & C++
2019. 10. 10. 16:34