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

时间:2017-08-19 04:51:02

标签: c++ string function

我有以下代码:

string *myf()   {
    string *a = new string;
    a="abc";
    return a;
}

我收到错误:

  

错误:无法转换' const char [4]' to' std :: string * {aka std :: basic_string< char> *}'在任务|

为什么?

1 个答案:

答案 0 :(得分:6)

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

*a = "abc";

或者:

a->assign("abc");

顺便说一句:字符串在内部包含指向其数据的指针,因此最好保持简单:

string myf() {
    return "abc";
}

这更有效,更安全。