C 11 std::string의 Null 종료
C에서 문자열은 일반적으로 std::string 클래스를 사용하여 표현됩니다. C 11 이전에는 std::string 객체가 항상 null로 끝나는지 여부에 대한 모호성이 있었습니다.
C 11 연속 저장소 보장
C 11에서는 std::string 클래스는 내용이 연속적으로 저장된다는 보장을 얻었습니다. 이는 Herb Sutter가 2008년 기사에서 제기한 우려 사항 중 하나를 해결한 것입니다.
Null 종료 제안 채택
Null 종료 요구 사항 및 복사 금지에 대해 - 작성 중 구현, Sutter의 기사에 언급된 제안은 C의 최종 초안에서 완전히 채택되지 않았습니다. 11.
&str[0] 사용의 안전성
그러나 [string.accessors] p1, std::basic_string::c_str():
Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()].이는 s.c_str()이 반환한 포인터를 의미합니다. 여기서 s는 문자열은 문자열의 첫 번째 문자 주소(&s[0])와 동일합니다.따라서 C 11에서는 &str[0]을 사용하여 문자열의 첫 번째 문자에 액세스하는 것이 안전합니다. std::string 객체, 외부 요인에 의해 수정되지 않는다고 가정합니다.
위 내용은 C 11의 std::string은 Null 종료가 보장됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!