Я прочитал этот вопрос «Why doesn't C++ support functions returning arrays?». Говорят, что когда мы пытаемся получить доступ к массиву извне этой функции (через возвращаемое значение), у нас есть проблема, потому что мы пытаемся получить доступ к памяти, которая не входит в область действия, с которой вы работаете (стек вызова функции).Функция 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);
}
'vector b' from' foo (...) 'будет скопирован в' c'. После выполнения 'a' и' c' будут копиями одного и того же объекта. –
lcs
ahem ... ** 'int' ** main ... –
Спасибо, отредактирован до int main – Raghav