Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 22:29   #1
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию Количество переменных

Предположим, нужно написать программу, которая должна использовать много переменных, но я заранее не знаю, сколько их нужно будет, как быть?
apeorin вне форума Ответить с цитированием
Старый 02.12.2012, 22:36   #2
theYozh
Пользователь
 
Аватар для theYozh
 
Регистрация: 28.01.2009
Сообщений: 75
По умолчанию

использовать динамические массивы
Код:
int num, *arr;
cin >> num;
arr = new int[num];
затем обращаешься к каждой переменной как в обычном массиве:
Код:
arr[0] = 23;
и не забудь в конце освободить память:
Код:
delete []arr;
theYozh вне форума Ответить с цитированием
Старый 02.12.2012, 22:58   #3
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию

Цитата:
Сообщение от theYozh Посмотреть сообщение
использовать динамические массивы
Код:
int num, *arr;
cin >> num;
arr = new int[num];
затем обращаешься к каждой переменной как в обычном массиве:
Код:
arr[0] = 23;
и не забудь в конце освободить память:
Код:
delete []arr;
А теперь... Неизвестное количество переменных нужно сложить, но как?
apeorin вне форума Ответить с цитированием
Старый 02.12.2012, 23:01   #4
theYozh
Пользователь
 
Аватар для theYozh
 
Регистрация: 28.01.2009
Сообщений: 75
По умолчанию

вот так:
Код:
int res(0);
res = arr[0]+arr[1]+arr[2]+...+arr[num-1];
cout << res; //вывод


PS никогда не пользуйтесь циклами, складывайте все всегда вручную
theYozh вне форума Ответить с цитированием
Старый 02.12.2012, 23:02   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В цикле for(int i=0;i<num;i++) тут суммируем
Цитата:
theYozh
Даже если их будет сто хандредмильонов?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2012, 23:06   #6
theYozh
Пользователь
 
Аватар для theYozh
 
Регистрация: 28.01.2009
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В цикле for(int i=0;i<num;i++) тут суммируем

Даже если их будет сто хандредмильонов?
Это был сарказм. Неужели не заметно, что человек вообще далек от программирования? Ибо сначала задает вопрос о работе с динамической памятью, а потом выясняется, что он не в курсе про циклы.
theYozh вне форума Ответить с цитированием
Старый 02.12.2012, 23:07   #7
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В цикле for(int i=0;i<num;i++) тут суммируем

Даже если их будет сто хандредмильонов?
А примерчик сложения можно? А то я пробую и не получается
apeorin вне форума Ответить с цитированием
Старый 02.12.2012, 23:09   #8
theYozh
Пользователь
 
Аватар для theYozh
 
Регистрация: 28.01.2009
Сообщений: 75
По умолчанию

Код:
int res(0);
for(int i=0;i<num;i++)
res += arr[i];
theYozh вне форума Ответить с цитированием
Старый 02.12.2012, 23:14   #9
apeorin
Пользователь
 
Регистрация: 21.10.2012
Сообщений: 65
По умолчанию

Огромное спасибо, за помощь, работает
Ах, кстати, что может случится, если не освободить выделенную память?
apeorin вне форума Ответить с цитированием
Старый 02.12.2012, 23:23   #10
theYozh
Пользователь
 
Аватар для theYozh
 
Регистрация: 28.01.2009
Сообщений: 75
По умолчанию

Цитата:
Сообщение от apeorin Посмотреть сообщение
Огромное спасибо, за помощь, работает
Ах, кстати, что может случится, если не освободить выделенную память?
На здоровье. И если Вас не затруднит, то в качестве благодарности нажмите на весы в моем сообщении.

Если не использовать delete то созданные объекты с большей вероятностью не уничтожатся при завершении программы, и будут занимать память до перезагрузки ОС.

Например если в бесконечном цикле выделять память, то сначала выберется доступная оперативка, потом начнет резервироваться место на жестком диске, а потом Ос просто перестанет выделять память программе. Интересный процесс одним словом.

Код:
long long *x;
while (1)
x = new long long;
theYozh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить количество четных чисел и количество нечетных чисел массива, которые вводятся в МЕМО, вывести в поле компонента Edit. Pyxy Помощь студентам 2 21.03.2012 23:24
Задана последовательность чисел в формате:сначала количество цифр в числе, потом - цифры числа. Подсчитать количество. Arn1 Помощь студентам 4 03.10.2011 20:03
Подсчитать количество слов и количество букв MDSIQ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.11.2010 16:57
большое количество переменных Oooleg Microsoft Office Excel 3 01.10.2009 16:58
количество цифр и количество символов до первой гласной буквы 111111 Общие вопросы C/C++ 2 22.12.2008 12:15