Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » передача структури в функцию

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

TheChampion

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
odl455

Цитата:
ага. тогда вопрос к Вам
возможно ли передать массив в функцию по значению?

 
По значению, как это принято в традиционном понимании слова -- нет. Перед передачей массива его придется скопировать в другой массив. Или использовать vector.
 
В случае с vector все просто, как и написал Swappp.
 
Можно написать функцию, копурующую массив (или где-то ее найти):
 
template<typename T>
T* copy_array(T* source, size_t len)
{
   T* res = new T[len];
   for(size_t i = 0; i < len; i++)
      res[i] = source[i];
   return res;  
}
 
Тогда все элементарно:
 
//...
int arr[10];
//...
int* cp_arr = copy_array<int>(arr, 10);
f(arr);
delete[] cp_arr;
//...
 
Главное - не забыть сделать delete[], а то будет утечка памяти.
 
В пару copy_array можно организовать destroy_array (чтобы не забыть уничтожать):
 
template<typename T>
void destroy_array(T* arr)
{
   delete[] arr;
}

Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 08:47 19-10-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » передача структури в функцию


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru