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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2016, 19:30   #1
Мой повелитель
Пользователь
 
Аватар для Мой повелитель
 
Регистрация: 04.01.2016
Сообщений: 93
По умолчанию вопрос по указателям

new - означает выделение памяти под что-либо?Но память же выделяется автоматически?
Мой повелитель вне форума Ответить с цитированием
Старый 09.01.2016, 19:39   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
new - означает выделение памяти под что-либо?
Имеется ввиду operator new или new-expression?
Цитата:
Но память же выделяется автоматически?
Только для данных с статическим, потоковым (thread_local) и автоматическим временем хранения.
Данными же с динамическим временем хранения нужно управлять "вручную".
Croessmah вне форума Ответить с цитированием
Старый 09.01.2016, 19:39   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нет. Не выделяется. Это только в Си с управляемыми указателями такое может быть возможно, и то я не ручаюсь. А так память из кучи запрашивать приходится самостоятельно в программе.
Даже использование чего-то типа STL содержит в себе сокрытые вызовы new.
Другое дело если ты запрашиваешь не указатель, а просто переменную. Тогда да. В стеке или в сегменте данных ей уже на этапе загрузки программы будет зарезервированно место. Ну а в стеке на этапе необходимости.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2016, 20:00   #4
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Цитата:
Сообщение от Мой повелитель Посмотреть сообщение
new - означает выделение памяти под что-либо?Но память же выделяется автоматически?
Если в программе динамически создаётся структура (через указатель на неё), то нужно использовать "new". А когда структура уже стала не нужна – память по этому адресу нужно освободить оператором "delete". Иначе будет утечка памяти, и тебя за это взгреют.
В "Visual C++" есть автоматический сборщик мусора "garbage collector", но я не знаю, как он работает.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 13.01.2016, 04:29   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
В "Visual C++" есть автоматический сборщик мусора "garbage collector", но я не знаю, как он работает.
Нету. Не путайте С++ и С++ CLI (который дот нет)
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по указателям Praud Помощь студентам 4 13.10.2014 19:30
Вопрос по указателям airorfo Общие вопросы C/C++ 2 11.01.2012 11:15
Вопрос по указателям. Freewill Общие вопросы C/C++ 8 16.03.2011 18:54
Вопрос по указателям fs444 Общие вопросы C/C++ 5 17.08.2010 00:08
вопрос по указателям Juffin Общие вопросы Delphi 2 24.11.2009 20:03