Я новичок в С++ и избегаю указателей. Из того, что я читал в Интернете, я не могу вернуть массив, но я могу вернуть указатель на него. Я сделал небольшой код, чтобы проверить его, и задавался вопросом, был ли это нормальный/правильный способ сделать это:
#include <iostream>
using namespace std;
int* test (int in[5]) {
int* out = in;
return out;
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int* pArr = test(arr);
for (int i = 0; i < 5; i++) cout<<pArr[i]<<endl;
cout<<endl;
return 0;
}
Изменить. Кажется, это нехорошо. Как мне переписать его?
int* test (int a[5], int b[5]) {
int c[5];
for (int i = 0; i < 5; i++) c[i] = a[i]+b[i];
int* out = c;
return out;
}
Изменить (снова): Спасибо, здесь есть много полезных ответов:) Я закончил с этим как функцию:
int* test (int* a, int* b) {
int* c = new int[5];
for (int i = 0; i < 5; i++) c[i] = a[i]+b[i];
return c;
}
и это можно назвать:
int m1[5] = {1, 2, 3, 4, 5};
int m2[5] = {6, 7, 8, 9, 10};
int* m3 = test(m1, m2);
for (int i = 0; i < 5; i++) cout<<m3[i]<<endl;
cout<<endl;
delete[] m3;