С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
54 / 54 / 10
Регистрация: 26.09.2011
Сообщений: 186
1

Для чего необходимо распределять память при помощи new и как оно работает

26.09.2011, 23:39. Показов 1046. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сижу вот думаю над таким куском кода и не могу понять, как он работает.
Допустим мы объявляем структуру:
C++
1
2
3
4
struct nameofctruct
{
setofsomevar;
};
Затем выделяем необходимое кол-во памяти для хранения уже объявленной структуры nameofstruct.
C++
1
nameofstruct *p_to_struct = new nameofstruct;
Значит, как я думаю... при объявлении структуры в самом начале мы уже резервируем необходимое количество памяти для её хранения. А затем мы берем и "селим" её по другому адресу. Но ведь она уже есть по одному адресу. Зачем это делается?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2011, 23:39
Ответы с готовыми решениями:

Как научить Windows ХР правильно распределять память?
Здравствуйте. Чуть более года назад я стал сталкиваться с проблемой. Интересно почему я до этого...

При помощи чего скомпилитить?
Спаял это http://rodyokot.ru/circuit/digital/measure/19/ Вроде правильно измеряет но криво...

При помощи таймера каждую секунду число a увеличивать, пока оно не станет равным числу b
Здравствуйте, помогите реализовать метод для таймера. С формы считываются 2 целочисленных числа,...

Слово this - для чего оно?
Читал, что слово this используется в первую очередь для устранения конфликта локальных и глобальных...

4
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,965
26.09.2011, 23:56 2
при объявлении структуры в самом начале мы уже резервируем
необходимое количество памяти для её хранения . А затем мы берем и "селим" её по другому
адресу. Но ведь она уже есть по одному адресу
Не правильно. При описании структуры вы просто сообщаете компилятору, данные какого типа будет содержать структура. Память выделяется при объявлении переменной, либо динамически при вызове malloc / new. К примеру, чтобы объявить глобальную переменную типа структуры (что на самом деле не лучшее решение в большинстве случаев), нужна примерно такая запись
C
1
2
3
4
struct POINT {
    int x;
    int y;
} pt;
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
27.09.2011, 00:00 3
Проще говоря, вы определяете новый тип, называемый пользовательским типом.
При создании объекта этого типа выделяется память для данных в структуре, т.е. в вашем случае выделяется память для setofsomevar;
Тоже касается и для класса.
0
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
27.09.2011, 00:16 4
struct nameofctruct
{
setofsomevar;
};
составляете смету

nameofstruct *p_to_struct = new nameofstruct;
просите деньги, соответствующие смете
1
54 / 54 / 10
Регистрация: 26.09.2011
Сообщений: 186
27.09.2011, 11:27  [ТС] 5
ага... ну, пока понятно. Спасибо )
0
27.09.2011, 11:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2011, 11:27
Помогаю со студенческими работами здесь

Слайд-шоу: При помощи чего лучше отображать картинки
Собрался реализовать слайд-шоу на c# и сразу возник ряд вопросов. Может кто сталкивался и поможет??...

Что такое событие, для чего оно нужно
Помогите разобраться, что ли Вчера пытался понять что же такое событие, для чего оно нужно, зачем...

При помощи вложенных циклов for необходимо нарисовать звездочками фигуры
Доброго времени суток! Уважаемые знатоки, помогите пожалуйста решить задачку: при помощи вложенных...

Swapfile.sys Что это такое и для чего оно?
Я считаю что этот файл занимает много места. Реально ли удалить. Я знаю как уменьшить...

Для чего предназначено бинарное дерево, что оно делает?
народ подскажите пожалуйста для чего предназначено бинарное дерево? что оно делает? (надо делать...

OpenVZ, VMware® ESXi 64-bit - для чего оно нужно?
Извиняюсь, может не там создал тему, но не нашел более подходящего раздела. Объясните зачем нужно...


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

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