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

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

Войти
Регистрация
Восстановить пароль
 
wardenclyffe
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 9
#1

Что лучше - malloc или new? - C++

27.02.2014, 16:41. Просмотров 621. Ответов 7
Метки нет (Все метки)

Что лучше использовать для выделения памяти?
C++
1
2
3
int *p = new int;
//or
int *p = malloc(sizeof(int));
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6473 / 2248 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.02.2014, 16:44     Что лучше - malloc или new? #2
Странный вопрос в C++ разделе. Сам-то как считаешь? Разницу знаешь?
wardenclyffe
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 9
27.02.2014, 16:59  [ТС]     Что лучше - malloc или new? #3
Вот и хочу узнать, в чём разница.
Vourhey
Почетный модератор
6473 / 2248 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.02.2014, 17:04     Что лучше - malloc или new? #4
Цитата Сообщение от wardenclyffe Посмотреть сообщение
Вот и хочу узнать, в чём разница.
А в книжке прочитать? В любой книге по плюсам написано, как работает new и что делает.
DrOffset
6840 / 4051 / 924
Регистрация: 30.01.2014
Сообщений: 6,855
27.02.2014, 17:11     Что лучше - malloc или new? #5
Перефразируя вопрос, что лучше - молоток или отвертка?
Не, ну шурупы молотком же можно забивать
Я не издеваюсь, просто хочу донести мысль. Каждому инструменту - своя задача.
New от malloc в общем случае отличается тем, что знает о С++: то бишь вызывает конструктор у объекта, память для которого он выделил. А delete - соответственно знает про деструктор. malloc ничего этого не делает, и в С++ может быть полезен, когда это делать и не надо (задача не требует).
aLarman
640 / 561 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
27.02.2014, 17:23     Что лучше - malloc или new? #6
malloc не вызывает конструктор объекта, не бросает исключение, возвращает NULL в случае если не выделили память, принимает необходимое кол-во байт в качестве параметр
new - вызывает конструктор (можно выбрать вызов по умолчанию или с параметрами), бросает исключение (кроме случая если в качестве параметра new передать std::nothrow или в случае самостоятельно перегрузки), а так же при выделении память нет необходимости указывать размер объекта(выделяемой памяти), в случае выделение памяти под массив так же не требует размер в байтах, а только кол-во элементов
Существует еще одна версия new с размещением, не полностью с ней знаком, но как понял эта версия конструирует объект с указанием где ему создаться (принимает в качестве параметра указатель на обл памяти) в общем случае все

Добавлено через 1 минуту
и еще, если пишите на Си - там нет new, только malloc (calloc еще кажется), на С++ есть оба, но лучше new
THE--MASTER
Заблокирован
27.02.2014, 17:25     Что лучше - malloc или new? #7
new
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2014, 18:08     Что лучше - malloc или new?
Еще ссылки по теме:

C++ Что лучше: динамические массивы, векторы, списки, map контейнеры или что-то ещё?
Что лучше c++ или c#? C++
Что быстрее/эффективнее malloc/realloc или new/delete? C++
Что лучше использовать: string или char[]? C++
Что лучше - вектора или массивы? C++

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

Или воспользуйтесь поиском по форуму:
wardenclyffe
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 9
27.02.2014, 18:08  [ТС]     Что лучше - malloc или new? #8
Спасибо, разобрался.
Yandex
Объявления
27.02.2014, 18:08     Что лучше - malloc или new?
Ответ Создать тему
Опции темы

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