在以下代碼分配C=R.c_str();
導致G ++拋出以下錯誤:錯誤:從「常量字符*」到「字符*」無效的轉換[-fpermissive]
error: invalid conversion from 'const char*' to 'char*' [-fpermissive]"
#include <iostream>
#include <string>
using namespace std;
int main()
{
string R = "killme";
char *C = new char[100];
C=R.c_str();
cout<<*C;
}
這是爲什麼一個錯誤,我該如何解決它?
爲什麼不簡單地施放? 例如char * c =(char *)myStdStr.c_str(); – hfrmobile
@hfrmobile如果添加'const',這對OP的例子來說可以很好地工作。但是,它通常不起作用,因爲您無法控制'c_str()'返回的內容:一旦修改了字符串,或者字符串超出了範圍,您從'c_str ()'變得無效。這就是爲什麼製作副本提供更安全的選擇。 – dasblinkenlight