A C++ string is already an array of char. You can obtain a mutable pointer to it by taking the address of the first element:
1 2
std::string s = "abcdef";
char* p = &s[0];
There's also a member function data() that does the same
1 2
std::string s = "abcdef";
char* p = s.data();
(note, if your compiler/library is so old that it doesn't support C++11, this pointer cannot be passed into functions that expect C strings: that's why c_str() existed)