gpt4 book ai didi

c++ - 如何在 C++ 函数中返回数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:36 26 4
gpt4 key购买 nike

我是 C++ 新手,我想知道如何从 C++ 函数返回数组。
我尝试了以下代码,但似乎没有用。

char some_function(){
char my_string[] = "The quick brown fox jumps over the lazy dog";
return my_string;
}

最佳答案

代码不工作的原因是函数结束的那一刻,您创建的字符串的生命周期也结束了。相反,如果您打算在 C++ 中工作,请使用 std::string 并返回它。

std::string myFunc(){
return string("hey a new string");
}

对于其他数组,使用 std::vectorstd::deque 或其他 STL 类之一。我还建议您查看 STL(标准模板库):

vector<float> myFunc(){
vector<float> blah;
blah.push_back(4.5);
blah.push_back(5.7);
return blah;
}

关于返回数组:

指针等的大问题是对象生命周期的考虑。比如下面的代码:

int* myFunc(){
int myInt = 4;
return &myInt;
}

这里发生的是,当函数退出时,myInt 不再存在,返回的指针指向某个内存地址,该地址可能包含也可能不包含值 4。如果您想要要使用指针返回一个数组(我真的建议你不要使用 std::vector)它必须看起来像这样:

int* myFunc(){
return new int[4];
}

它使用了 new 运算符。

关于c++ - 如何在 C++ 函数中返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4253106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com