Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
#1

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

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

Сижу вот думаю над таким куском кода и не могу понять, как он работает.
Допустим мы объявляем структуру:
C++
1
2
3
4
struct nameofctruct
{
setofsomevar;
};
Затем выделяем необходимое кол-во памяти для хранения уже объявленной структуры nameofstruct.
C++
1
nameofstruct *p_to_struct = new nameofstruct;
Значит, как я думаю... при объявлении структуры в самом начале мы уже резервируем необходимое количество памяти для её хранения. А затем мы берем и "селим" её по другому адресу. Но ведь она уже есть по одному адресу. Зачем это делается?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2011, 23:39     Для чего необходимо распределять память при помощи new и как оно работает
Посмотрите здесь:

Составить программу для решения задачи с целыми числами при помощи циклов C++
При помощи вложенных циклов for необходимо нарисовать звездочками фигуры C++
Как сортировать массив при помощи функцыи sort C++
C++ Как данную программу реализовать при помощи классов
C++ как усовершенствовать студ.актив при помощи С++
C++ Выделение в динамичесую память как его написать и как оно происходит? Что это я пишу?
Как найти сумму элементов массива при помощи класса? C++
Как называется условие if (!x) {} и как оно работает? C++
C++ Если память для объекта выделяется динамически (строка 33), сортировка sort не работает
C++ Для четного введенного числа определить, делится ли оно на 10, для нечетного - делится ли оно на 5
C++ Правильно ли составлено выражение, и для чего оно нужно в данном коде?
C++ Для чего необходимо ключевое слово typename

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
26.09.2011, 23:56     Для чего необходимо распределять память при помощи new и как оно работает #2
при объявлении структуры в самом начале мы уже резервируем
необходимое количество памяти для её хранения . А затем мы берем и "селим" её по другому
адресу. Но ведь она уже есть по одному адресу
Не правильно. При описании структуры вы просто сообщаете компилятору, данные какого типа будет содержать структура. Память выделяется при объявлении переменной, либо динамически при вызове malloc / new. К примеру, чтобы объявить глобальную переменную типа структуры (что на самом деле не лучшее решение в большинстве случаев), нужна примерно такая запись
C
1
2
3
4
struct POINT {
    int x;
    int y;
} pt;
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 00:00     Для чего необходимо распределять память при помощи new и как оно работает #3
Проще говоря, вы определяете новый тип, называемый пользовательским типом.
При создании объекта этого типа выделяется память для данных в структуре, т.е. в вашем случае выделяется память для setofsomevar;
Тоже касается и для класса.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
27.09.2011, 00:16     Для чего необходимо распределять память при помощи new и как оно работает #4
struct nameofctruct
{
setofsomevar;
};
составляете смету

nameofstruct *p_to_struct = new nameofstruct;
просите деньги, соответствующие смете
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
27.09.2011, 11:27  [ТС]     Для чего необходимо распределять память при помощи new и как оно работает #5
ага... ну, пока понятно. Спасибо )
Yandex
Объявления
27.09.2011, 11:27     Для чего необходимо распределять память при помощи new и как оно работает
Ответ Создать тему
Опции темы

Текущее время: 07:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru