Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Как описать массив переменной размерности в C++?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Ratnikov Alex
Гость





СообщениеДобавлено: Вт Янв 21 2003 15:00    Заголовок сообщения: Как описать массив переменной размерности в C++? Ответить с цитатой

Буду очень благодарен за любую информацию о том как описать массив переменной размерности в C++.Чтобы смысл был таков например: int ArrayName[int..], а не int ArrayName[const int..].Заранее спасибо. ratnikov@smk.ru
Вернуться к началу
Adil
Гость





СообщениеДобавлено: Вт Янв 21 2003 16:12    Заголовок сообщения: Re: Как описать массив переменной размерности в C++? Ответить с цитатой

Для этого надо использовать указатели и динамическое выделение памяти.
Ех:
int *arr;
int b;

b=20;
arr=new int[b];//можно arr=(int*)malloc(b*sizeof(int)); в стиле Си.
//максимальное значение b зависит нескольких
//причин: ОС, модели памяти программы для
//ДОС и т.д.
if(arr==NULL)
;//ошибка выделения памяти

for(int i=0;i
Вернуться к началу
Vector
Гость





СообщениеДобавлено: Ср Янв 22 2003 15:32    Заголовок сообщения: Re: Как описать массив переменной размерности в C++? Ответить с цитатой

А почему бы не использовать библиотеку STL
стандартное vector и никаких проблем
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Ср Янв 22 2003 18:25    Заголовок сообщения: Вопрос слишком общий. Важно знать, ради каких действий (методов ) нужны массивы переменной размерности. Просветил бы... Хотя то Ответить с цитатой

-
Вернуться к началу
Y
Гость





СообщениеДобавлено: Чт Янв 23 2003 15:14    Заголовок сообщения: Всё просто! Ответить с цитатой

Делается это очень просто!
1) Вам необходимо объявить указатель на массив.
int *m;
2) Теперь выделяем под него память
m = new int[4];
3) Работаем
......
m[2] = 3;
......
4) Удаляем
delete[] m;
Для многомерных массивов идея та же, только выделять память надо под каждый столбец массива:
int **m;//обратите внимание, как я объявил указатель
m = new int*[4]; //выделили место под указатели столбцов
for(int i=0; i
Вернуться к началу
Y
Гость





СообщениеДобавлено: Чт Янв 23 2003 15:16    Заголовок сообщения: ...Продолжаю.. Ответить с цитатой

for(int i=0; i
Вернуться к началу
Y
Гость





СообщениеДобавлено: Чт Янв 23 2003 15:17    Заголовок сообщения: Ещё..Продолжаю.. (грёбаный форум!) Ответить с цитатой

for(int i=0; i
Вернуться к началу
Y
Гость





СообщениеДобавлено: Чт Янв 23 2003 15:22    Заголовок сообщения: Продолжить не удалось.. :-((( Ответить с цитатой

мдя... ну бля и форум...
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Чт Янв 23 2003 19:40    Заголовок сообщения: Я бы не сказал, что "Всё просто!", так как, по-видимому, важно при изменении размерности массива сохранять его значен Ответить с цитатой

А в твоем случае любой delete[] потеряет старые значения.

Кстати, в твоем случае вместо
int **m = new int*[4]; //выделили место под указатели столбцов
for(int i=0; i < 4; i++) {
m[i] = new int[10];// выделили место под столбец (10 -- количество строк)
}

можно использовать:

int *m[4];
m[0] = new int[40]; //выделили место под элементы (4x10 -- 4 столбца по 10 строк)
for(int i=1; i < 4; i++) {
m[i] = m[i-1]+10;
}

Это быстрее работает.
Вернуться к началу
Александр



Зарегистрирован: 07.10.2003
Сообщения: 276

СообщениеДобавлено: Сб Янв 25 2003 11:33    Заголовок сообщения: Re: Я бы не сказал, что "Всё просто!", так как, по-видимому, важно при изменении размерности массива сохранять его зн Ответить с цитатой

посмотри в MSDN ключевое слово new и ссылки.Там показано использование многомерных массивов переменного размера. Тогда будет действительно просто. Не забудь про delete[].
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...