Việ*_*and -2 c++ string function
我有以下代码:
string *myf() {
string *a = new string;
a="abc";
return a;
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
错误:无法在赋值中将'const char [4]'转换为'std :: string*{aka std :: basic_string <char>*}'
为什么?
您需要引用要分配的字符串,而不是指针:
*a = "abc";
Run Code Online (Sandbox Code Playgroud)
要么:
a->assign("abc");
Run Code Online (Sandbox Code Playgroud)
顺便说一句:字符串内部包含指向其数据的指针,因此最好保持简单:
string myf() {
return "abc";
}
Run Code Online (Sandbox Code Playgroud)
这更有效,更安全.