Форум программистов, компьютерный форум CyberForum.ru

Передача массива в функцию - C++

Восстановить пароль Регистрация
 
Bino321
2 / 2 / 0
Регистрация: 22.11.2013
Сообщений: 31
09.03.2014, 19:17     Передача массива в функцию #1
Я только-только начал изучать указатели, поэтому в этой области туплю... У меня в функции main создается массив указателей на обьекты классов
C++
1
object *arr[64];
Потом этот массив передается в функцию_1, если я правильно формулирую, как указатель на массив указателей. Передаю как указатель для того, чтобы функция_1 могла изменять массив в функции main
C++
1
int foo_1(**arr)
Как мне из функции_1 передать этот массив в функцию_2 чтобы он передался по значению (чтобы я в функции_2 мог работать с локальной копией этого массива, небоясь что изменю этим самым массив в функции_1)?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kylroma
Одессит
 Аватар для kylroma
44 / 44 / 18
Регистрация: 30.12.2013
Сообщений: 203
Записей в блоге: 1
Завершенные тесты: 1
09.03.2014, 19:37     Передача массива в функцию #2
Не совсем понял. На сколько я знаю, то массив в любом случае, без значка "*" передаёт указатель на первый элемент. Чтоб массив не менять, то нужно поставить перед аргументом функции const. Например:
void fun(const int arr[], int n), arr - массив, n - количество элементов в массиве.
П.с. сам новичок, если не прав, то сильно не ругайте.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
09.03.2014, 19:48     Передача массива в функцию #3
По значению массив сумеете передать только, если сделаете из него объект.
Тогда в нем будет соответствующий копиконструктор.
Можно использовать объект vector:
C++
1
2
vector<vector<object>> A;// Двумерный массив переменных типа object
void f(vector<vector<object>> F);// Функция, которой передается двумерный массив переменных типа object
Bino321
2 / 2 / 0
Регистрация: 22.11.2013
Сообщений: 31
09.03.2014, 20:09  [ТС]     Передача массива в функцию #4
Чтоб массив не менять, то нужно поставить перед аргументом функции const.
В том то и дело, что мне его нужно менять, но только не совсем его, а его локальную копию, созданую в этой функции.

Добавлено через 3 минуты
zss, Понятно, значит мне наверно будет проще в функцию_2 передать тоже указателем, а там уже самому вручную создать копию того массива... Спасибо
Yandex
Объявления
09.03.2014, 20:09     Передача массива в функцию
Ответ Создать тему
Опции темы

Текущее время: 04:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru