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() 포인터를 오래 저장하지 말고, 필요한 호출 지점에서 바로 얻어 넘기는 습관이 안전합니다.