![]() |
|
Модераторы: bsa |
![]()
|
|
| Atanvarno |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.12.2007 Репутация: нет Всего: нет |
Задача: реализовать функции вставки/удаления элементов из динамического массива
Не понимаю, возможно ли в функции изменить размер массива. ЗЫ можно использовать только стандартные массивы. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Atanvarno
Во-первых, какой язык программирования? Во-вторых, ты уж определись, тебе нужны "стандартные массивы" (под этим словом ты понимаешь статические (int array[10])?) или "стандартные функции". В-третьих, размер динамического массива можно менять. Для этого в Си существует функция realloc(), а в Си++ - std::vector::resize(). |
|||
|
||||
| Atanvarno |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.12.2007 Репутация: нет Всего: нет |
Язык программирования С++, массивы да, самые обычные c-шные. Использовать надо new/delete
Никакой библиотеки alloc.h быть не должно. Векторы тоже использовать недопустимо - это чётко прописано в условии задачи. ЗЫ Вставка/удаление должны быть реализованы в отдельных функциях, которые в качестве параметра получают указатель на исходный массив. Это сообщение отредактировал(а) Atanvarno - 6.4.2008, 21:54 |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
в С/С++ alloc.h нет. Поэтому его и использовать не получится.
Во-первых, ты должен написать функцию переноса данных. Логично, ее сделать так:
С удалением поступать надо аналогично, только наоборот. |
||||
|
|||||
| Atanvarno |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.12.2007 Репутация: нет Всего: нет |
Спасибо большое!
Но можно ещё вопрос? Как правильно "прочитать" T* &array эту конструкцию? Указатель на ссылку на массив? |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Строго говоря: ссылка на указатель, но, учитывая смысловую нагрузку идентификатора "array" этот указатель указывает на массив а не на одиночный объект. Это сообщение отредактировал(а) archimed7592 - 8.4.2008, 09:42 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Как правильно заметил archimed7592 это именно ссылка на указатель на массив. Я даже специально прилепил звездочку и амперсанд к нужным местам, чтобы не запутать. Ее задача позволить изменить адрес исходного массива. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |