C String

C 문자열 길이 판단

std::string과 달리 길이 정보가 객체에 안전하게 묶여 있지 않아 종료 문자와 버퍼 크기를 직접 신경 써야 한다.

구조와 위험 지점

null term

문자 배열

문자들이 연속된 메모리에 저장되고 배열처럼 접근된다.

널 종료

문자열의 끝은 마지막 값 뒤의 \0 문자로 구분한다.

길이 관리

복사와 결합 시 실제 공간이 충분한지 개발자가 확인해야 한다.

안전 대안

일반적인 C++ 코드에서는 std::string이 더 안전하고 표현력이 좋다.

charsnullscanrisk
널 종료 경계

C 문자열을 볼 때는 내용보다 먼저 끝을 어떻게 찾는지, 버퍼 크기를 누가 보장하는지를 확인해야 한다.