как получить массив из функции?
я недавно начал изучать c++ не судите строго
как вы уже поняли из заголовка, мне нужно получить массив из функции. вот код:
#include <iostream>
int a() {
int b[3] = { 1, 2, 3};
return b;
}
int main() {
int b[3] = a();
std::cout << b[0] << std::endl;
return 0;
}
Ответы (1 шт):
Автор решения: Ildar
→ Ссылка
Массив выделенный на стэке нельзя возвращать из функции, это неопределенное поведение.
Варианты как работать с массивом в функции:
передать массив как входной параметр функции
выделить его на куче в функции и освободить позже - не рекомендуется
сделать массив глобальной переменной - не рекомендуется
использовать stl контейнер, передавать в виде параметра или возвращать из функции - наиболее приемлемый вариант на C++
вариант с передачей массива как параметра для функции в примере ниже
#include <iostream>
void foo(int *const arr) {
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
}
int main() {
int arr[3] = {};
foo(arr);
std::cout << arr[0] << std::endl;
return 0;
}