Як повернути масив з функції

Як повернути масив з функції

Іменована сукупність однотипних даних, що називається масивом, широко використовується в різних мовах програмування. За допомогою масиву значно полегшується робота з даними, забезпечується структурованість програмного коду. Функції в мовах також мають величезне значення, дозволяючи виконувати вузькоспрямоване завдання в будь-якому місці коду, без його повторної реалізації. При цьому часто виникає необхідність використання даних одного масиву як у функції, так і в інших блоках коду. Повернення масиву з функції може бути реалізовано декількома способами.

Інструкція

1. У мові програмування C++ безпосереднє повернення масиву з функції непередбачений, дану задачу можна вирішити за допомогою передачі індексу на масив даних. Для цього при оголошенні використовуваної функції пропишіть їй в якості поверненого значення покажчик на тип даних, масив яких планується передавати. Приклад коду програми мовою С++, який реалізує повернення даних масиву за покажчиком:class СHelp{private: int m_data[4];public: fDebit() { m_data[0]=42; M_data[1]=56;} int * returnArray ()//оголошення та опис функції {return m_data;}}}; void main () {int * m_dataA; СHelp *ohelp=new СHelp(); M_dataA=ohelp->returnArray () ;//повернення масиву класу} Але слід мати на увазі, що таке повернення можливе лише в рамках одного класу. Якщо потрібно використовувати звичайну функцію в коді програми, аналогічна передача даних через покажчик буде некоректною і може виконуватися з помилкою. Це пов 'язано з областю видимості змінних. При створенні масиву в самій функції він не буде видний за її межами.

2. У разі необхідності передачі масиву з локальної функції слід скористатися наступним варіантом: Сформуйте масив в основному коді програми. Оголосіть функцію з параметрами, першим з яких буде костянтний покажчик на тип даних масиву, другий - звичайний індекс того ж виду. При виклику функції передайте як перший і другий параметри одну й ту саму адресу створеного масиву. Роботу з даними у функції здійснювайте з першим отриманим покажчиком, а всі зміни записуйте за покажчиком другого. Таким чином, після завершення функції ви отримаєте результати його роботи в масиві за другим покажчиком. Приклад оголошення такої функції:void my_funk_1(const double* in, doble* out);

3. Використовуйте реалізований клас std::Auto_ptr, що вирішує завдання передачі покажчика з функції без помилок з областю видимості змінних. Приклад коду програми:include include int [] Arr_f2 (int count )//опис функції {return new int [count];} void main () {std::Auto_ptr ptr (Arr_f2 (20)) ;//виклик функції та повернення нею масиву cout

4. У мові програмування FoxPro повернення функції можна реалізувати схожим способом, звертаючись до раніше створеного масиву. Приклад коду мовою FoxPro:LOCAL mas(2) =func_2(@f3)?mas(15)?mas(20)FUNCTION func_2(mas)EXTERNAL ARRAY masmas(1)=1mas(2)=2RETURNENDFUNC

5. Скриптова мова AutoIt дозволяє повернути масив з функції, використовуючи стандартні конструкції і оператор Return.Приклад коду мовою AutoIt:# include $ Rez = () $ aRezultat = StringSplit ($ Rez, '') Func () $ aRet = 15 & '' & 40 Return $ aRet//повернення масиву aRet з EndFunc