C++/C++
std::string 을 const char* 로 전달하기
Elan
2021. 3. 5. 23:40
const char* 로 전달
std::string str = "I want to convert string to char*";;
const char *cs = str.c_str(); // c_str() 의 반환형은 const char *이기 때문에 수정은 못함.
수정할 수 있는 char* 로 전달
std::string str = "I want to convert string to char*";;
char * writable = new char[str.size() + 1];
std::copy(str.begin(), str.end(), writable);
writable[str.size()] = '\0'; // 스트링 끝에 반드시 0을 추가해줘야 함 ( 0 은 Null 을 의미 )
delete[] writable;
메모리 누수 조심.
std::string str = "I want to convert string to char*";
char *ss = (char*)str.c_str(); // 수정하고 싶으면 (char*)로 명시적 형변환
vector 컨테이너를 사용하여 전달 ( Standard 한 방법 )
std::string str = "I want to convert string to char*";
std::vector<char> writable(str.begin(), str.end());
writable.push_back('\0');
char* ptr = &writable[0];
std::cout << ptr;
vector 라는 container는 메모리 관리를 알아서 해줌
char* to std::string 은 대입 시 그냥 바로 복사 전달 됨