Возврат массива из функции обычно считается плохим.
Если вы НЕ ДОЛЖНЫ иметь «новый» массив, я бы предположил, что типичный случай в C и C ++ должен изменить входной массив. Если функция CALLING хочет иметь два отдельных массива, тогда она может сделать это, создав собственную копию. В качестве альтернативы вы можете написать свой код, чтобы в вашу функцию были переданы два массива, например.
void add5ToEveryElement(int arr[], int arr2[], int size)
{
for(int i=0; i<size; i++)
{
arr2[i] = arr[i] + 5;
cout<<theArray[i]<<endl;
}
}
, тогда ваш главный вызовет два аргумента массива, и если вы хотите использовать то же самое, что и вход и выход, он тоже это сделает.
Конечно, это не совсем ответ на ваш вопрос, но он дает «лучшее» решение вашей проблемы.
Мне вообще не нравится распределение в функциях - особенно «скрытое» распределение (эта функция говорит, что добавляет 5 к каждому элементу, а не «выделяет массив с добавлением 5 к каждому элементу»). Код никогда не должен удивлять, и выделение памяти - это немного неожиданность, если вы только попросили добавить 5 к каждому элементу)