• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

string에서 null char 관련

21.01.04 01:18 작성 조회수 176

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을 사용하면 런타임 에러가 발생합니다.