我在 C++ 中处理字符串数组时遇到问题。我尝试了以下两种方法。仍然 无法解决问题...事情是这样的: 当我使用时:
string* fun(string* a,string*b)
{
string c[];
return c; /* c is string array type*/
}
它返回存储在字符串数组 c 中的第一个字符串。我希望返回整个字符串数组。 当我使用时:
vector<string> fun(vector<string> a,vector<string> b){
vector<string> c;
return c;
}
仍然,我遇到了一些错误。
你能帮我知道这两种情况的问题出在哪里吗?
需要进行哪些修改才能获得所需的结果。
如何在 C++ 中处理字符串数组。
提前感谢!!
最佳答案
在第一个版本中,您将返回一个指向局部变量(您的数组)的指针,当您离开作用域时,该变量将不再存在。您需要在堆上创建数组,例如使用malloc
或new
。如果您手动分配它,请不要忘记取消分配它。
在第二个版本中,您将返回函数中声明的 vector
的拷贝(如果您修改返回的 vector
中的字符串
) code>,它们不会在 a
和 b
中被修改)。您正在创建一个空的 vector
,并且没有在其中添加任何内容,因此它不会包含任何字符串
。
关于c++ - 从 C++ 函数返回字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11008759/