정확하지 않은 제목 죄송합니다. 주제를 뭐라고 해야 할지 모르겠어서..
#include <iostream>
using namespace std;
int main() {
cout << " 입력한 '두' 어절을 그대로 복사합니다. 두 어절만 쓰세요. \n"<< endl;
char a1[1000] = { 0 };
char a2[1000] = { 0 };
cin >> a1 >> a2;
cout << a1 << " " << a2 << endl;
}
이렇게 visual studio에 입력하면 아무 오류 또는 경고 없이 잘 실행이 됩니다.
그런데
#include <stdio.h>
int main() {
printf("입력한 '두' 어절을 그대로 복사합니다. 두 어절만 쓰세요.\n");
char a1[1000] = { 0 };
char a2[1000] = { 0 };
scanf_s("%s %s",a1,a2,sizeof(a1),sizeof(a2));
printf("\n%s %s", a1, a2);
}
이렇게 입력하면
C6066 : 포인터가 아닌 항목이 _Param_(4)로 전달되었습니다.
C6273 : 정수가 아닌 항목이 _Param_(3)으로 전달되었습니다.
C6328 : 크기 불일치: 'unsigned __int64'이(가) _Param_(5)으로 전달되었습니다.
이렇게 경고는 많이 뜨지만 오류없이 실행은 잘 됩니다.
같은 입력인데 하나는 정상이고 하나는 많이 경고나는 이유가 무엇인지 궁굼하여 질문드립니다