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

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

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

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

спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2013, 02:39
Ответы с готовыми решениями:

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

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

Как вывести на экран массив произвольного размера?
FILE * input = fopen ("имя файла", "r"); if (input==NULL){ printf("exception"); exit; }

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

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

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

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

Добавлено через 4 минуты
вероятно умножить на -1 ?
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 03:52 13
Берёте самую толстую книгу по теории множеств, которую можете найти. Открываете её на разделе про меры. Бьёте того, кто дал вам это задание, до тех пор, пока не выясните, что имеется в виду под "отрицательными размерами" и какова семантика отрицательных индексов. Потому что их можно понимать по-разному: или это просто сдвинутые указатели, или индексы берутся по модулю и отрицательные просто обходят массив от конца к началу.
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
13.03.2013, 04:00  [ТС] 14
oh my god сам в шоке
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
13.03.2013, 05:36 15
Цитата Сообщение от slipp1 Посмотреть сообщение
а как организовать произвольного размера?
в каждый конкретный момент времени твой произвол будет задан.
0
13.03.2013, 05:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2013, 05:36
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru