Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

изменение массива

1.8K
03 ноября 2006 года
pod
144 / / 05.04.2006
можно ли передать в функцию массив, внутри функции менять массив а после окончание работы функции иметь прежний массив?

подскожите пожалуста как? если возможно.
17K
04 ноября 2006 года
Bosheit
26 / / 28.10.2006
Насколько я понял, ты спрашиваешь, можно ли в ф-ю передать массив по значению. Но в C++ массивы передаются через указатель на первый элемент, и изменения массива внутри ф-ии всегда отразятся на "внешнем" массиве. Но можно, например, хранить массив в виде вектора, а его уже передавать в ф-ю, естественно, по значению.
3
04 ноября 2006 года
Green
4.8K / / 20.01.2000
В принципе, все правильно, за одним замечанием:
в C++ массив можно передавать по ссылке на массив, а не только через указатель на первый элемент:
 
Код:
void func( type (&arg)[size] );

Это удобно использовать в частных специализациях шаблона для массивов.
309
04 ноября 2006 года
el scorpio
1.1K / / 19.09.2006
Для простых массивов передаётся указатель на массив (на первый элемент), а для контейнеров используется передача ссылки на объект
 
Код:
void Func (vector <int> &Array)
{
Array [x] = ...;
}

Для изменение размера массива можно передать ссылку на указатель или указатель второго порядка.
 
Код:
void Resize1 (int* &Array, int NewSize)
{
Array = (int*) realloc (Array, sizeof(int)*NewSize);
}

void Resize2 (int **Array, int NewSize)
{
*Array = (int*) realloc (*Array, sizeof(int)*NewSize);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог