Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
1

оператор new

08.12.2011, 14:53. Показов 434. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть массив:
C++
1
static int *p=new int [call*2]; // call-счётчик вызовов
требуется каждый раз выделять память и при этом сохранять все данные которые были в массиве.При таком объявление как у меня будут ли стёрты данные.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2011, 14:53
Ответы с готовыми решениями:

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области...

4
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
08.12.2011, 14:56 2
ogcjm124, Нет. Используйте либо контейнер. Либо используйте старую добрую схему.

Создали массив на call * 2 элементов.
Скопировали элементы из старого массива в новый.
Удалили старый массив.
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
08.12.2011, 15:00 3
Цитата Сообщение от ogcjm124 Посмотреть сообщение
При таком объявление как у меня будут ли стёрты данные.
Если вы каждый раз присваиваете адрес нововыделенной памяти одному и тому же указателю, то предыдущий массив потеряется, естесственно, вы ж указатель не него похерили.

В вашем случае либо создать два указателя - новый массив и предыдущий, а затем копировать содержимое предыдущего в новый, либо-таки воспользоваться нормальными средствами и не мучаться. Используйте vector
0
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
08.12.2011, 15:02  [ТС] 4
Можете поподробнее рассказать как это делается посредством контейнеров?Контейнеры вообще было бы лучше применить?
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
08.12.2011, 15:04 5
ogcjm124, Контейнеры всегда лучше применять, если не столь критична скорость.
Читайте http://cplusplus.com/reference/stl/vector/
В частности http://cplusplus.com/reference/stl/vector/resize/
0
08.12.2011, 15:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2011, 15:04
Помогаю со студенческими работами здесь

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
#include <iostream> using namespace std; class random { public: void Set(int b){a=b;} int...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры.
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n...

Оператор break как оператор go to next
Подскажите, в этом примере break эквивалентна действию оператора go to next?

Как перегрузить оператор<< и оператор>> ?
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru