작성
·
249
1
string my_str_("");
cout << std::boolalpha;
cout << my_str_.empty() << endl;
cout << (int)my_str_[0] << endl; // 0 출력
수업중에 사용된 코드에서 마지막에 null char가 있는지 확인하려고 (int)my_str_[0]을 출력해보았는데, 0이 출력되었습니다.
수업 중에 교수님께서 string에서는 null char를 절대 포함하지 않는다고 하셨고 분명히 my_str_.empty()에서 확인한것처럼 메모리가 비어있는데, 왜 (int)my_str_[0] 에 접근이 가능하고 0으로 값이 출력되는 건가요?
답변 1
0
안녕하세요? 좋은 질문입니다! 호기심이 많으신 것은 공부에 도움이 많이 될 것 같습니다.
17장까지 오셨으니 힌트만 드리자면,
cout << (int)my_str_.at(0) << endl;
과 같이 디버그 모드에서 at을 사용하면 런타임 에러가 발생합니다.