Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дин. массив 
:(
    Опции темы
Metalex
Дата 5.12.2009, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



У меня есть цикл:
Код
for (i=2; i<=n; i++)

в котором мы обращаемся к функции, которая определяет, является ли i делителем числа n. 
В итоге, все найденные делители должны быть записаны в массив. 

Но ведь динамический массив определяется так:
cin>>n;
int *matr;
matr=new int*[n];

А если мы первоначально не знаем сколько будет элементов? Можно ли как-то "растягивать" массив?

Добавлено через 1 минуту и 8 секунд
Не решайте мне задачу (хотя и врядли кто захочет  smile ), помогите разобратся с массивом просто.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
djamshud
Дата 5.12.2009, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Выбирайте: std::vector<int>, (Qt) QVector<int>, int* +malloc+realloc+free. Еще в бусте есть что-то.

ЗЫ. Поиск суксь!


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Metalex
Дата 5.12.2009, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



malloc+realloc+freе нужно использовать в комплексе.. а обьявлять массив через маллок - это дольше.
vector<int>, (Qt) QVector<int> - это что такое?  smile 


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Metalex
Дата 5.12.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Просмотрел я станичку, на которую кинул ссылу djamshud, но мало чего понял о векторах...  smile 
Уточню, мне нужно написать прогу НА С++. Маллок в С++ допустимо, но как будет правильнее? Через маллок или через непонятный вектор? И еще прошу обьяснить мне, что такое вектор  smile .


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
bsa
Дата 5.12.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Metalex, почему не читаем Часто задаваемые вопросы?!? Тебе нужна пятая ссылка.

Цитата(Metalex @  5.12.2009,  00:30 Найти цитируемый пост)
Код
cin>>n;
int *matr;
matr=new int*[n];
Мы конечно можем много рассуждать про методы изменения размеров массивов, но когда человек делает такие ошибки, подобные разговоры вообще ни о чем.

Metalex, указанный выше код ДАЖЕ НЕ СКОМПИЛИРУЕТСЯ! Почему? А потому, что ты пытаешься присвоить указателю на int указатель на int*. Другими словами, ты выделяешь не массив целых чисел, а массив указателей на целое число. Это, я тебе скажу, совсем не одно и тоже. В часто задаваемых вопросах все описано.
PM   Вверх
Metalex
Дата 6.12.2009, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



bsa, djamshud, вообще я хотел напечатать:
Код
cin>>n;
int *matr;
matr=new int [n];


Добавлено через 2 минуты и 44 секунды
bsa, интересно, кстати, почему про new-delete в чаво упомянуто, а обьяснения и примера нет?


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
mes
Дата 6.12.2009, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Metalex @  6.12.2009,  01:06 Найти цитируемый пост)
интересно, кстати, почему про new-delete в чаво упомянуто, а обьяснения и примера нет? 

как нет ? внимательней :
http://forum.vingrad.ru/index.php?showtopi...t&p=1362321

Цитата

В языке С++ есть встроенные средства, для работы с динамической памятью - new[] и delete[], позволяющие выделять  память под массивы и освобождать ее:

Код

...
    int *p = new int[n];    //выделяем память
    for(int i = 0; i < n; ++i)
        array[i] = i*10;    //присваиваем элементам массива удесятеренное значение индекса
    for(int i = 0; i < n; ++i)
        std::cout << array[i] << " ";    //выводим все элементы массива через пробел в одну строчку
    std::cout << std::endl;
    delete []p;    //освобождаем память



за более подробным объяснением надо лезть не в чаво, а в книжку...
smile


Это сообщение отредактировал(а) mes - 6.12.2009, 02:35


--------------------
PM MAIL WWW   Вверх
bsa
Дата 6.12.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
offtopic перенесен сюда.


Это сообщение отредактировал(а) bsa - 6.12.2009, 21:37
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.