Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
1

Изменение размеров массива

06.03.2011, 13:49. Показов 3693. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Хочу попросить помощи в решении следующего вопроса, есть ли какая-то возможность изменения размерности массива пользователем? Понятно, что static const в классе или const вне класса изменить нельзя, или enum {m1, m2} не изменить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2011, 13:49
Ответы с готовыми решениями:

Изменение размеров консольноо окна
Готовил лабораторную работу по программированию. Там небольшая программа запускаемая в консольном...

Изменение размеров и шрифта консоли
#include <iostream> #include <ctime> using namespace std; int main() { const int ROW=5; ...

Изменение размеров элементов, при изменение размеров формы
Доброго времени суток, подскажите, как в VS2016 реализовать подобное, а именно: Имеются следующая...

Изменение размеров динамического массива
Здравствуйте, уважаемые форумчане. Новую тему не имеет смыла заводить, поэтому пишу сюда. Возникла...

9
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.03.2011, 14:12 2
Что значит "изменение размерности"? Сделать из одномерного массива двумерный, к примеру? В принципе, можно написать свой класс, который будет это реализовывать, но практической пользы я в этом не вижу.
Цитата Сообщение от zabuka Посмотреть сообщение
Понятно, что static const в классе или const вне класса изменить нельзя, или enum {m1, m2} не изменить.
А это вообще к чему?
0
Заблокирован
06.03.2011, 14:14 3
есть ли какая-то возможность изменения размерности массива пользователем?
А зачем? Приведите пример.
0
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
06.03.2011, 14:21  [ТС] 4
Цитата Сообщение от Nameless One Посмотреть сообщение
Что значит "изменение размерности"? Сделать из одномерного массива двумерный, к примеру? В принципе, можно написать свой класс, который будет это реализовывать, но практической пользы я в этом не вижу.
Прошу прощения, не размерности массива, а размера массива
Цитата Сообщение от Nameless One Посмотреть сообщение
А это вообще к чему?
К тому, что кое кто мне доказывал, что можно изменить.
Цитата Сообщение от IrineK Посмотреть сообщение
А зачем? Приведите пример.
Задача Лафоре: создать массив limit[10][10], с возможностью делать массив меньше чем 10 на 10.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.03.2011, 14:32 5
zabuka, в С/С++, в принципе, нет массивов как типов данных - есть указатели на область памяти + "синтаксический сахар" в виде оператора доступа по индексу и определения статических массивов. Поэтому в общем случае "массив" в С не имеет никакой информации о своем размере (размер статического массива еще можно узнать). Это я к тому, что размер массива должен знать пользователь. Задача изменения размера динамического массива в С решается с помощью функции realloc, в С++ с помощью выделения массива нового размера, копирование в него элементов старого и удаления старого.
Цитата Сообщение от zabuka Посмотреть сообщение
Задача Лафоре: создать массив limit[10][10], с возможностью делать массив меньше чем 10 на 10.
Что значит "возможность делать массив меньше, чем 10 на 10?"
1
59 / 59 / 2
Регистрация: 22.01.2011
Сообщений: 187
06.03.2011, 14:35 6
Цитата Сообщение от zabuka Посмотреть сообщение
Задача Лафоре: создать массив limit[10][10], с возможностью делать массив меньше чем 10 на 10.
В таком случае пользуйтесь указателями и new, delete or malloc, free
C
1
2
3
4
5
int **limit;
limit = (int**)malloc(sizeof(int*) * 10);
for (i = 0; i < 10; i++) {
 limit[i] = (int*)malloc(sizeof(int) * 10);
}
П.С. как пример.

Добавлено через 2 минуты
уменьшить/увеличить realloc
1
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
06.03.2011, 14:39  [ТС] 7
Цитата Сообщение от Nameless One Посмотреть сообщение
zabuka, в С/С++, в принципе, нет массивов как типов данных - есть указатели на область памяти ...
Цитата Сообщение от bobrovskii Посмотреть сообщение
В таком случае пользуйтесь указателями и new, delete or malloc, free
Спасибо за помощь! Я учу С++ по книге Лафоре, сейчас еще не дошел до указателей. Обращусь к вашим подсказкам позже, как изучу данную главу.

Цитата Сообщение от Nameless One Посмотреть сообщение
Что значит "возможность делать массив меньше, чем 10 на 10?"
Простите, но я не смогу ответить на Ваш вопрос, поскольку цитирую задание из книги, а уровень знаний ограничен.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.03.2011, 14:50 8
zabuka, может, имелось в виду что-то типа этого:
C
1
2
3
4
5
6
7
8
int limit[10][10];
size_t maxDim1 = 8, maxDim2 = 7; /* Размеры "нового массива" */
/* А дальше работаем с массивом так, как будто
 * maxDim1, maxDim2 - это размеры массива:
 */
for(i = 0; i < maxDim1; ++i)
    for(j = 0; j < maxDim2; ++j)
        /* ... */
1
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
06.03.2011, 14:57 9
Цитата Сообщение от zabuka Посмотреть сообщение
Задача Лафоре: создать массив limit[10][10], с возможностью делать массив меньше чем 10 на 10.
Меньше - не больше, можно просто работать с частью массива, а оставшуюся часть просто инорировать.
0
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
06.03.2011, 21:52  [ТС] 10
Цитата Сообщение от kazak Посмотреть сообщение
Меньше - не больше, можно просто работать с частью массива, а оставшуюся часть просто инорировать.
Задание такое.
0
06.03.2011, 21:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2011, 21:52
Помогаю со студенческими работами здесь

Возможно ли динамическое изменение размеров массива?
Не могу понять - в яве возможно динамическое изменение размеров массива? То есть чтобы не...

Изменение размеров Image.Picture.LoadFromFile при изменении размеров окна
Подскажите, пожалуйста, какие функции для этого нужны.

Изменение размеров рисунка при изменении размеров области вывода (окна)
Нужно сделать так, что бы рисунок менял свой размер при изменении окна... unit Unit1; interface ...

Автоматическое изменение размеров компонентов при изменении размеров формы
Приветствую. Подскажите. Форма по умолчанию при запуске приложения открывается по центру. Если...


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

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