我正在試圖爲char *創建一個std :: string的副本。這是我的功能和它看到的結果:將std :: string複製到char *
void main()
{
std::string test1;
std::cout << "Enter Data1" << std::endl;
std::cin >> test1;
char* test2;
test2 = (char*)test1.c_str();
std::cout << "test1: "<< &test1 << std::endl;
std::cout << "test2: "<< &test2 << std::endl;
}
Enter Data1
Check
test1: 0x7fff81d26900
test2: 0x7fff81d26908
我不確定如果副本已創建或兩者都指向同一個位置。 如何確認?
請注意,test1的是一個類,test2的是一個指針,它的完全不同。 test1.c_str()返回test1成員的指針。 Alexis的答案是將整個數據複製到新指針的正確方法。 –