C++ Char 질문
조회수 546회
#include <iostream>
using namespace std;
int main(void)
{
char ID[10];
cin >> ID;
cout << ID << endl;
return 0;
}
위와 같이 작성했는데 ID라는 문자배열 크기를 10으로 설정했는데 cin으로 10를 넘는 문자열을 입력했는데 그대로 들어가네요
저 [*]가 정확히 뭘 뜻하는거죠?
1 답변
-
배열 갯수를 넘게 메모리에 쓰지(buffer overflow) 않도록 프로그래머가 신경을 써 주어야 해요.
아래 예를 보면요.
#include <iostream> using namespace std; int main(void) { char a = 'a'; char ID[10]; char b = 'b'; sprintf(ID, "123456789AB"); cout << ID << endl; cout << a << endl; cout << b << endl; return 0; }
ID 갯수를 넘어가게 써지면서, 그 메모리 주변에 있는 변수가 영향을 받게 됩니다.
댓글 입력