![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
ekha |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.11.2004 Репутация: нет Всего: нет |
Прошу прошения. Скажите пожалуйста, как используется динамичекий массив? ![]() |
|||
|
||||
dargaard |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 450 Регистрация: 7.5.2004 Репутация: 4 Всего: 25 |
В динамическом массиве память не выделена во время компиляции, а выделяется во время исполнения програмы.
Например: (Статический массив) int main() { int massiv[10]; } будет выделена память под массив из 10 чисел. (Динамический массив) int main() { int *massiv; //указатель на будуший массив //какие нибудь действия чтоб установить сколько надо выделить // например мы как то выяснили что размер массива N = 10 // В С massiv = malloc(sizeof(int) * N); // В С++ massiv = new int[10]; //Далее если массив больше не нужен, память можно удалить // В С free(massiv); // В С++ delete [] massiv; } Следовательно динамический массив используется, когда а) не известно количество элементов заранее б) массив нужен только на короткое время Это сообщение отредактировал(а) dargaard - 24.11.2004, 17:19 -------------------- Ты должна сделать добро из зла потому что его больше не из чего сделать. Р.П.Уоррен |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
Используется обычно, когда заранее не знаешь длины требуемого массива.
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 4 Всего: 10 |
а еще почитай про vector из STL, очень удобная штука.
-------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
[ss]3L33T@ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 14.10.2003 Где: Казармы Репутация: -1 Всего: 1 |
ekha
Ещё посмотри функцию realloc(). Она необходима для расширения массива без потери данных. Т.е., в данном примере я сначала завёл массив из 5 элементов, а потом другой - из 20 элементов, чтобы завести второй, мне нужно было осовободить память из-под первого, при этом все значение первого массива, есесно, были утеряны, а функция realloc() просто расширяет границы массива --------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@ |
|||
|
||||
!Жека! |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 26.11.2004 Репутация: нет Всего: нет |
Сначало необходимо выделить память под массив, потом идет работа с массивом как с обыкновенным. По окончании необходимо осободить выделенную память.
Пример. int *arr = new int[n]; // выделяем память под n элементов, n - любое, может быть не константой for (int i = 0; i < n; ++i) arr[i] = i+10; // работаем с массивом delete [] arr; // освобождаем память, обрати внимание на скобки [] если их забыть то ошибки не будет, но память полностью не освободится |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
АФАИК старо-сишные функции обычно не принято употреблять в С++. Это сообщение отредактировал(а) chipset - 27.11.2004, 16:25 --------------------
|
||||
|
|||||
Гость_ekha |
|
|||
Unregistered |
Сначала Всем спасибо за рекомендации. Хочу подсчитать колличество цифры какой нибудь число. помогите пожалуйста. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
2 Пользователей читают эту тему (2 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |