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

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

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

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

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

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

спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 02:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив произвольного размера (C++):

Динамический массив элементов произвольного типа - C++
Доброго времени суток. Будьте так добры, если вас не затруднит, помочь "понимающему дубу" с одной назойливой программкой. С...

Строковый массив произвольного размера - C++
Можно ли каким-то образом образом написать программу, в которой будет вводиться строковый массив произвольной длины? Если бы это был...

Можно ли передать в функцию массив произвольного размера ? - C++
Хочу создать функцию для детекта количества элементов в массиве sizeof(array)/sizeof(array); и надо чтобы функция принимала...

Можно ли создать функцию, принимающую двумерный массив произвольного размера? - C++
Добрый вечер всем. Я прочитал в книге в главе Передача двумерных массивов в функцию следующую вещь: Я написал маленькую программку с...

Динамический массив без размера - C++
День добрый, сразу к делу: Создаю я значит массив, а размер не указываю, одной кнопочкой добавляю элемент в массив, другой вывожу в memo,...

Двумерный динамический массив размера NxM - C++
Создайте двумерный динамический массив размера NxM.Выделите для него и освободите память.

14
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 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); // новый размер
Вот так.
0
alsav22
5421 / 4816 / 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];
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
13.03.2013, 03:04  [ТС] #4
все предложенное не то. еще есть какие варианты?
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 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));
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 03:13 #6
Цитата Сообщение от slipp1 Посмотреть сообщение
все предложенное не то.
Что не устраивает?
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
13.03.2013, 03:14  [ТС] #7
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Сперва надо чётко высказать, что хочется. Желательно с примерами.[/CPP]
через new, delete
нужно создать динамический двумерный массив целый чисел с произвольным размером (не через вектор)
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 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;
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 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 нужно определять?
0
alsav22
5421 / 4816 / 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;
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 03:22 #11
Ну да, не из астрала же берутся. Определите их. Или как-нибудь по-другому назовите. Или числа напишите.
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
13.03.2013, 03:49  [ТС] #12
еще вопрос как сделать размер массива отрицательным?

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

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

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

Двумерный динамический массив. Ввод размера с клавиатуры - C++
Что я делаю не так? Хочу с клавиатуры вводить размерность двумерного динамического массива, вылетает в исключение в VS или выводит что...

Динамический массив без явного указания размера - C++
Самый праздный вопрос, наверное. И, вроде бы, я даже знаю ответ, но все-таки сомневаюсь. В С++ нельзя работать с динамическими...

Создать двумерный динамический массив заданного пользователем размера - C++
Нужно создать массив (ну пусть М). Вот как объявить этот массив, чтобы пользователь затем сам вводил эти х и а?

Шаблонный класс: динамический числовой массив увеличиваемого размера - C++
привет помогите реализовать программу на шаблоны пожалйста: Реализовать динамический числовой массив увеличиваемого размера как класс...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
13.03.2013, 05:36
Ответ Создать тему
Опции темы

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