C언어에 대한 입문을 시작했다.
근본 없이 공부를 이어나갈 수 없으니 빠르게라도 한 번 훑고 컴퓨터구조나 자료 구조에 대해서 공부하면 좋을 것 같다!
python을 먼저 배웠기 때문에 변수가 무엇이고 상수가 무엇이고 입출력이 무엇인지는 알고 있었는데 scanf와 scanf_s 차이가 궁금해서 적게 되었다.
visual studio code를 이용해서 책을 보며 따라하고 있었는데
책 예제에 scanf_s가 있는 그대로 치니 실행이 되지 않고 scanf를 치니 되었다.
차이가 무엇일까?
scanf는 아는 것 같은데.. visual studio code라서 scanf_s를 모르는 건가? 싶어서 여기저기 찾아보았다. 나도 사실 뭔지 몰라서
다른 블로그를 더 찾아보니
scanf_s는 오버플로우 방지가 가능하다고 한다.
int, float, double 같은 자료형은 자료형 크기가 일정하기 때문에 자료형을 입력받는데 문제가 없지만,
char, char[]형태인 문자, 문자열에서는 입력받을 크기를 반드시 뒤에 입력해주어야 합니다.
scanf_s("%s", 문자열변수명, sizeof(문자열변수명)); 을 써주면 입력 받을 수 있다고 한다.