Як повернути масив

Як повернути масив

Масиви є однією з найпростіших форм структурованого зберігання даних. Оскільки під зберігання вимірних масивів відводяться неподільні області пам 'яті, і більшість мов програмування має синтаксичні конструкції для їх оголошення, вони інтенсивно використовуються в якості буферів для передачі великих обсягів інформації різним (в тому числі і бібліотечним) функціям. У свою чергу функціям іноді потрібно повернути масив.

Вам знадобиться

  • - текстовий редактор;
  • - компілятор і лінкер C або C++.

Інструкція

    1. Поверніть дані з функції або методу, помістивши їх у масив фіксованої довжини, розподілений зухвалою стороною і переданий за посиланням. Виберіть відповідний тип даних, наприклад:typedef int t_array10[10];Используйте його в декларації та реалізації потрібної функції або методу:void ReturnArray (t_array10& raOut) {raOut [0] = 10;} Відповідним чином здійснюйте виклик:int aNumbers [10]; ReturnArray (aNumbers); брак цього методу полягає в тому, що довжина масиву фіксована.

     2. Поверніть дані масиву, помістивши їх у вихідний буфер, розподілений зухвалою стороною і переданий за індексом. Прототип функції або методу може містити параметр, оголошений як у нотації масиву без специфікації розміру:void ReturnArray (int anArray [], int nSize), так і як індекс:void ReturnArray (int * pnArray, int nSize), B обох випадках ідентифікатор параметра можна використовувати в нотації масиву:void ReturnArray(int *pnArray, int nSize){ for(nSize--; nSize > -1; pnArray [nSize] = nSize--); }//викличint aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers )/sizeof (aNumbers [0]); цей метод передавання масивів у

               3. Поверніть масив, створений у функції або методі. Формально в даному випадку повинен бути повернутий не масив, а покажчик на його перший елемент:int * ReturnArray () {int * pnArray = new int [10] ;//робота з pnArray return pnArray; }//отримання покажчика на створений масивint * pnNumbers = ReturnArray () ;//використання, delete Так, масив повинен бути розташований в динамічно розподіленій пам 'яті. Крім того, його видалення необхідно зробити методом, що відповідає створенню (delete у разі використання new, free для malloc, тощо).

                        4. Використовуйте класи контейнерів для того, щоб зручно повертати масиви при розробці програм на C++. Приклад створення та повернення масиву, який є об 'єктом класу шаблону vector стандартної бібліотеки шаблонів C++, специфікованого для int, може виглядати так:#include <vector>std::vector<int> ReturnArray(){ std::vector<int> oArray; oArray.resize(10); oArray[0] = 100; oArray[1] = 200; return oArray;} std::vector < int > oArray = ReturnArray (); Зверніть увагу на те, що більшість популярних фреймворків надає потужні класи або шаблони класів масивів. Часто вони реалізують концепцію неявного поділу даних з підрахунком посилань і копіюванням при записі. Тому повернення за значенням подібних масивів з функцій виконується досить ефективно і пов 'язаний з мінімальною витратою обчислювальних ресурсів.