我读过这个问题“为什么 C++ 不支持返回数组的函数? ”。据说当我们试图从这个函数外部(通过返回值)访问数组时,我们遇到了一个问题,因为我们试图访问不在您正在使用的范围内的内存(函数调用的堆栈)。
当我们返回在函数内部声明的 std::string 或 std::vector 或 C++ 制作字符串或向量的副本并将副本返回给调用者以使字符串或向量不超出范围。
vector<int> foo(const vector<int> a)
{
vector<int> b = a;
return b;
}
int main()
{
vector<int> a;
vector<int> c = foo(a);
}