Масив є однією з найпростіших форм структурованого Зберігання Даних. Оскількі під Зберігання одновімірніх масівів відводяться неподільні області пам'яті, и більшість мов програмування має синтаксичні конструкції для їх оголошення, смороду інтенсівно Використовують як буферів для передачі великих обсягів информации різнім (у тому чіслі и бібліотечнім) функцій. У свою Черга функціям іноді нужно повернути масив.
Вам Знадоби
- - текстовий редактор;
- - компілятор и линкер C або C ++.
Інструкція
Поверніть дані з Функції або методу, помістівші їх в масив фіксованої Довжина, розподіленій віклікає стороною и надіс по ПОСИЛАННЯ. Проведіть визначення відповідного типу Даних, Наприклад: typedef int t_array10 [10] -Вікорістовуйте его в декларації та реализации потрібної Функції або методу: void ReturnArray (t_array10 raOut) {raOut [0] = 10-} Відповіднім чином здійснюйте виклик: int aNumbers [10 ] -ReturnArray (aNumbers) -недолік даного методу Полягає в тому, что довжина масиву фіксована.
Поверніть дані масиву, помістівші їх у вихідний буфер, розподіленій віклікає стороною и надіс за вказівніком. Прототип Функції або методом может містіті параметр, Оголошення як в нотації масиву без Специфікації розміру: void ReturnArray (int anArray [], int nSize) -так и в якості покажчика: void ReturnArray (int * pnArray, int nSize) -В обидвох випадка ідентифікатор параметра можна використовуват в нотації масиву: void ReturnArray (int * pnArray, int nSize) {for (nSize --- nSize> -1- pnArray [nSize] = nSize -) -} // візовint aNumbers [10] -ReturnArray (aNumbers , sizeof (aNumbers) / sizeof (aNumbers [0])) - Даній метод передачі масівів у Функції и повернення Даних масівів з них в переважній більшості віпадків вікорістовується при розробці програм на C. зверніть увагу на ті, что Функції и методи, Які беруть и повертаються дані подібним чином, як правило, повінні мати додатковий параметр, через Який передається реальний розмір буфера.
Поверніть масив, Створений у Функції або методі. Формально в даним випадка винен буті повернутися не масив, а покажчик на его перший елемент: int * ReturnArray () {int * pnArray = new int [10] - // робота з pnArray return pnArray-} // Отримання покажчика на Створений массівint * pnNumbers = ReturnArray () - // іспользованіеdelete [] pnNumbers- // удаленіеІспользованіе даного методу пов'язане з Певної ограниченной. Так, масив винен буті розташованій в дінамічно розподіляє пам'яті. Крім того, его відалення звітність, здійсніті методом, відповіднім створеня (delete у разі использование new, free для malloc, и т.д.).
Використову класи контейнеров для того, щоб Зручне повертаті масив при розробці програм на 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 () - зверніть увагу на ті, что більшість популярних фреймворків надає потужні класи або Шаблони класів масівів. Найчастіше смороду реалізують концепцію неявного розділення Даних з підрахунком ПОСИЛАННЯ и копіюванням при запісі. Тому повернення за значенням подібніх масівів з функцій віконується й достатньо ефективного и пов'язаний з мінімальною витрат обчислювальних РЕСУРСІВ.