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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
#1

Изменение размеров массива - C++

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

Добрый день! Хочу попросить помощи в решении следующего вопроса, есть ли какая-то возможность изменения размерности массива пользователем? Понятно, что static const в классе или const вне класса изменить нельзя, или enum {m1, m2} не изменить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2011, 13:49     Изменение размеров массива
Посмотрите здесь:

Даны два двухмерных массива одинаковых размеров. Создать третий массив такого же размера, каждый элемент которого равен 100 C++
Изменение размера массива C++
C++ Изменение размеров и шрифта консоли
C++ напишите программу формирования массива размеров 5 х 5
C++ Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элемента
Изменение массива в функции C++
C++ Изменение массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
06.03.2011, 14:12     Изменение размеров массива #2
Что значит "изменение размерности"? Сделать из одномерного массива двумерный, к примеру? В принципе, можно написать свой класс, который будет это реализовывать, но практической пользы я в этом не вижу.
Цитата Сообщение от zabuka Посмотреть сообщение
Понятно, что static const в классе или const вне класса изменить нельзя, или enum {m1, m2} не изменить.
А это вообще к чему?
IrineK
Заблокирован
06.03.2011, 14:14     Изменение размеров массива #3
есть ли какая-то возможность изменения размерности массива пользователем?
А зачем? Приведите пример.
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
06.03.2011, 14:21  [ТС]     Изменение размеров массива #4
Цитата Сообщение от Nameless One Посмотреть сообщение
Что значит "изменение размерности"? Сделать из одномерного массива двумерный, к примеру? В принципе, можно написать свой класс, который будет это реализовывать, но практической пользы я в этом не вижу.
Прошу прощения, не размерности массива, а размера массива
Цитата Сообщение от Nameless One Посмотреть сообщение
А это вообще к чему?
К тому, что кое кто мне доказывал, что можно изменить.
Цитата Сообщение от IrineK Посмотреть сообщение
А зачем? Приведите пример.
Задача Лафоре: создать массив limit[10][10], с возможностью делать массив меньше чем 10 на 10.
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
06.03.2011, 14:32     Изменение размеров массива #5
zabuka, в С/С++, в принципе, нет массивов как типов данных - есть указатели на область памяти + "синтаксический сахар" в виде оператора доступа по индексу и определения статических массивов. Поэтому в общем случае "массив" в С не имеет никакой информации о своем размере (размер статического массива еще можно узнать). Это я к тому, что размер массива должен знать пользователь. Задача изменения размера динамического массива в С решается с помощью функции realloc, в С++ с помощью выделения массива нового размера, копирование в него элементов старого и удаления старого.
Цитата Сообщение от zabuka Посмотреть сообщение
Задача Лафоре: создать массив limit[10][10], с возможностью делать массив меньше чем 10 на 10.
Что значит "возможность делать массив меньше, чем 10 на 10?"
bobrovskii
58 / 58 / 3
Регистрация: 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
zabuka
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?"
Простите, но я не смогу ответить на Ваш вопрос, поскольку цитирую задание из книги, а уровень знаний ограничен.
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
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)
        /* ... */
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
06.03.2011, 14:57     Изменение размеров массива #9
Цитата Сообщение от zabuka Посмотреть сообщение
Задача Лафоре: создать массив limit[10][10], с возможностью делать массив меньше чем 10 на 10.
Меньше - не больше, можно просто работать с частью массива, а оставшуюся часть просто инорировать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2011, 21:52     Изменение размеров массива
Еще ссылки по теме:

Изменение размеров консольноо окна C++
C++ Изменение размера массива
Изменение размера массива C++
C++ Сформировать из элементов линейного массива квадратную таблицу А максимально возможных размеров
Изменение исходного массива C++

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

Или воспользуйтесь поиском по форуму:
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
06.03.2011, 21:52  [ТС]     Изменение размеров массива #10
Цитата Сообщение от kazak Посмотреть сообщение
Меньше - не больше, можно просто работать с частью массива, а оставшуюся часть просто инорировать.
Задание такое.
Yandex
Объявления
06.03.2011, 21:52     Изменение размеров массива
Ответ Создать тему
Опции темы

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