在C++中使用动态字符串

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>*}'

为什么?

Joh*_*nck 6

您需要引用要分配的字符串,而不是指针:

*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)

这更有效,更安全.