std::string과 C 문자열은 경계에서만 명확히 변환한다
일반 코드에서는 std::string으로 다루고, C API를 만나는 순간에만 포인터 형태를 꺼냅니다.
C 문자열에서 std::string으로
const char* raw = "Hello";std::string text = raw;결과: 객체가 길이와 저장 공간을 관리합니다.
std::string에서 C API로
std::string text = "Hello";const char* p = text.c_str();주의:
text가 살아 있고 크게 바뀌지 않는 동안만 씁니다.핵심: c_str() 포인터를 오래 저장하지 말고, 필요한 호출 지점에서 바로 얻어 넘기는 습관이 안전합니다.