![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| XbiT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 9.2.2006 Репутация: нет Всего: 1 |
Как передать копию массива в ф-цию? т.е что бы его можно было менять внутри ф-ции, но это не влеяло на реальный массив.
Пробовал такой вариант, но он меняет значения реального массива:
|
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
XbiT,
Одной строчкой в параметрах так сделать нельзя, так как имя массива - это в любом случае указатель Выход: 1. Используем std::vector из STL
Т.е. в данном случае используем ООП и возможность передачи по ссылке или значению ИМХО, лучший вариант. С vector работай как с массивом 2. Внутри твоей функции f() ручками (т.е. в цикле) сделать копию массива Это сообщение отредактировал(а) Kuvaldis - 3.2.2007, 16:43 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| XbiT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 9.2.2006 Репутация: нет Всего: 1 |
Kuvaldis, cпасибо
|
|||
|
||||
| ip127001 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 24.11.2006 Где: Omsk Репутация: -2 Всего: -1 |
странно...он должен создавать локальную копию
с переменной полюбому будет работать---1 пост! --------------------
aqua currit et debere currere ut currere solebat |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
ip127001,
Создается локальная копия УКАЗАТЕЛЯ, который указывает на ту же область памяти. И работа в функции идет именно с первоначальной областью. Автор же хочет именно дубликат (!) массива (т.е. его копию В ДРУГОМ месте) -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Самое простое воспользоваться STL, как уже прелагалось выше.
Можно написать сосбственный класс с конструктором копирования... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |