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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
#1

Динамический массив произвольного размера - C++

13.03.2013, 02:39. Просмотров 977. Ответов 14
Метки нет (Все метки)

динамический массив заданного размера:
C++
1
int *massiv = new int[9]
а как организовать произвольного размера?

спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 02:39     Динамический массив произвольного размера
Посмотрите здесь:

Динамический массив структур qwer заданного пользователем размера C++
Можно ли создать функцию, принимающую двумерный массив произвольного размера? C++
C++ Строковый массив произвольного размера
C++ Можно ли передать в функцию массив произвольного размера ?
Двумерный динамический массив размера NxM C++
Динамический массив элементов произвольного типа C++
Создать двумерный динамический массив заданного пользователем размера C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 02:45     Динамический массив произвольного размера #2
C++
1
2
3
4
5
#include <vector> // в начале
 
std::vector<int> array(9); // начальный размер
 
array.resize(100500); // новый размер
Вот так.
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 02:57     Динамический массив произвольного размера #3
Цитата Сообщение от slipp1 Посмотреть сообщение
а как организовать произвольного размера?
Если произвольного, в смысле неопределённого, то через объект с автоматическим управлением памятью:
C++
1
2
3
#include <vector> 
 
std::vector<int> array;
Если произвольного, в смысле получения значения размера при работе программы, то, например, так:
C++
1
2
3
size_t n;
cin >> n;
int *arr = new int[n];
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
13.03.2013, 03:04  [ТС]     Динамический массив произвольного размера #4
все предложенное не то. еще есть какие варианты?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 03:11     Динамический массив произвольного размера #5
Сперва надо чётко высказать, что хочется. Желательно с примерами.

VLA?
C++
1
2
3
int n;
// ...
int array[n];
malloc/realloc?
C++
1
2
3
int *array = (int*) malloc(9 * sizeof(*array));
// ...
array = (int*) realloc(100500 * sizeof(*array));
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 03:13     Динамический массив произвольного размера #6
Цитата Сообщение от slipp1 Посмотреть сообщение
все предложенное не то.
Что не устраивает?
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
13.03.2013, 03:14  [ТС]     Динамический массив произвольного размера #7
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Сперва надо чётко высказать, что хочется. Желательно с примерами.[/CPP]
через new, delete
нужно создать динамический двумерный массив целый чисел с произвольным размером (не через вектор)
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 03:17     Динамический массив произвольного размера #8
Ну вот так бы и сказали.
C++
1
2
3
4
5
6
7
8
9
10
11
int **array = new int*[n];
for (int i = 0; i < n; i++) {
    array[i] = new int[m];
}
 
// ...
 
for (int i = 0; i < n; i++) {
    delete [] array[i];
}
delete [] array;
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
13.03.2013, 03:20  [ТС]     Динамический массив произвольного размера #9
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Ну вот так бы и сказали.
C++
1
2
3
4
5
6
7
8
9
10
11
int **array = new int*[n];
for (int i = 0; i < n; i++) {
    array[i] = new int[m];
}
 
// ...
 
for (int i = 0; i < n; i++) {
    delete [] array[i];
}
delete [] array;
m і n нужно определять?
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 03:22     Динамический массив произвольного размера #10
C++
1
2
3
4
5
6
7
8
9
10
11
size_t n, m;
cin >> n >> m;
    
int **arr = new int[n][m];
for (size_t = 0; i < n; ++i)
    arr[i] = new int[m];
 
for (size_t = 0; i < n; ++i)
    delete [] arr[i];
    
delete [] arr;
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 03:22     Динамический массив произвольного размера #11
Ну да, не из астрала же берутся. Определите их. Или как-нибудь по-другому назовите. Или числа напишите.
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
13.03.2013, 03:49  [ТС]     Динамический массив произвольного размера #12
еще вопрос как сделать размер массива отрицательным?

перефразирую вышесказанное:

нужно создать динамический двумерный массив целый чисел с произвольным (включая и отрицательным) размером (не через вектор)

Добавлено через 4 минуты
вероятно умножить на -1 ?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 03:52     Динамический массив произвольного размера #13
Берёте самую толстую книгу по теории множеств, которую можете найти. Открываете её на разделе про меры. Бьёте того, кто дал вам это задание, до тех пор, пока не выясните, что имеется в виду под "отрицательными размерами" и какова семантика отрицательных индексов. Потому что их можно понимать по-разному: или это просто сдвинутые указатели, или индексы берутся по модулю и отрицательные просто обходят массив от конца к началу.
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 366
Записей в блоге: 1
13.03.2013, 04:00  [ТС]     Динамический массив произвольного размера #14
oh my god сам в шоке
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2013, 05:36     Динамический массив произвольного размера
Еще ссылки по теме:

Дан динамический одномерный массив размера N, изменить размер массива до M C++
C++ Динамический массив нулевого размера. Почему не падает программа?
Динамический массив без явного указания размера C++
C++ Двумерный динамический массив. Ввод размера с клавиатуры
C++ Динамический массив без размера

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.03.2013, 05:36     Динамический массив произвольного размера #15
Цитата Сообщение от slipp1 Посмотреть сообщение
а как организовать произвольного размера?
в каждый конкретный момент времени твой произвол будет задан.
Yandex
Объявления
13.03.2013, 05:36     Динамический массив произвольного размера
Ответ Создать тему
Опции темы

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