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

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

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

  • - текстовий редактор;
  • - компілятор і линкер 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) -В обох випадках ідентифікатор параметра можна використовувати в нотації масиву: void ReturnArray (int * pnArray, int nSize) {for (nSize --- nSize gt; -1- PnArray [nSize] = nSize -) -} // визовint aNumbers [10] -ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])) - Даний метод передачі масивів у функції і повернення даних масивів з них в переважній більшості випадків використовується при розробці програм на C. Зверніть увагу на те, що функції і методи, які беруть і повертають дані подібним чином, як правило, повинні мати додатковий параметр, через який передається реальний розмір буфера.



3
Поверніть масив, створений в функції або методі. Формально в даному випадку повинен бути повернуто не масив, а покажчик на його перший елемент: int * ReturnArray () {int * pnArray = new int [10] - // робота з pnArray return pnArray-} // отримання покажчика на створений массівint * pnNumbers = ReturnArray () - // іспользованіеdelete [] pnNumbers- // удаленіеІспользованіе даного методу пов`язане з певними обмеженнями. Так, масив повинен бути розташований в динамічно розподіляє пам`яті. Крім того, його видалення необхідно здійснити методом, відповідним створенню (delete в разі використання new, free для malloc, і т.д.).
4
Використовуйте класи контейнерів для того, щоб зручно повертати масиви при розробці програм на C ++. Приклад створення та повернення масиву, що є об`єктом класу шаблону vector стандартної бібліотеки шаблонів C ++, специфікованого для int, може виглядати так: #include std :: vector ReturnArray () {std :: vector oArray- oArray.resize (10) - oArray [0] = 100-oArray [1] = 200 return oArray-} std :: vector oArray = ReturnArray () - Зверніть увагу на те, що більшість популярних фреймворків надає потужні класи або шаблони класів масивів. Найчастіше вони реалізують концепцію неявного розділення даних з підрахунком посилань і копіюванням при записі. Тому повернення за значенням подібних масивів з функцій виконується досить ефективно і пов`язаний з мінімальною витратою обчислювальних ресурсів.


Увага, тільки СЬОГОДНІ!


Оцініть, будь ласка статтю
Всього голосів: 110
Увага, тільки СЬОГОДНІ!