|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
malloc20.06.2008, 16:00. Показов 12423. Ответов 26
Метки нет (Все метки)
Народ, кто-нить может объяснить какие есть недостатки у этой функции, всегда юзал, а тут говорят, что это очень нехорошо, вот и стало интересно, почему?
0
|
|
| 20.06.2008, 16:00 | |
|
Ответы с готовыми решениями:
26
malloc, free error Функция malloc() динамически увеличивает выделение памяти по мере необходимости? Аналог malloc |
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 23.06.2008, 16:21 | |
|
malloc / free - это язык С. new / delete - это C++. Исходя из этого, и стоит выбирать, какую из функций выделения/освобождения памяти применять.
0
|
|
|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
||
| 30.08.2008, 19:20 | ||
|
ПС: Я могу рассказать про недостаток их.. См. топик в "C++ Builder". Но альтернативы пока не вижу.
0
|
||
|
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
|
|
| 31.08.2008, 17:41 | |
|
мы тут, кажется, целую горячую тему уже разводили об этих аллоках. пришли к выводу, что alloc == new и тому прочее соответственно, выбор остается за предпочтением.
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 31.08.2008, 22:49 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 12.02.2009
Сообщений: 11
|
|
| 12.02.2009, 07:01 | |
|
1. new не обязательно использует malloc.
Как уже кто-то писал, new вызывает конструктор. malloc есть в C++ и это функция C++. Лично я не вижу, почему бы она не была бы C++ функцией. malloc рекомендуется по возможности не использовать, прежде всего, поскольку легко может случиться утечка памяти: как показала практика, free имеет тенденцию не вызываться. Причём по внешней видимости программа не демонстрирует ненормального поведения :-) Разыскать, на что и где утекает память, бывает довольно сложно. new имеет это же неприятное свойство, хотя, по крайней мере, можно рассчитывать на правильную работу на этапе инициализации конструктором (между прочим, это может помочь с поиском утечек). Поэтому и malloc, и new требуют повышенного внимания и их рекомендуется использовать с осторожностью. Где возможно, рекомендуются автоматические переменные (локальные в блоке), средства библиотеки C++ ... :-)
0
|
|
|
|
|
| 12.04.2009, 18:21 | |
|
Что new, что malloc - в конечном итоге всё равно попадаем в ОС. В случае юниксов это системный вызов brk или mmap, что в винде - не знаю. Чем пользоваться - зависит от ситуации. Если нужно выделить массив объектов - пользуйтесь new, если просто какой-то буффер в памяти - malloc. Если динамическая память нужна на время жизни процедуры и по завершении процедуры уже не нужна - alloca (это работает быстрее, т.к. фактически просто перенастраивается stack pointer). Современные расширения языков Си и Си++ позволяют динамические массивы. Моё мнение таково, что использовать нужно как можно более высокий уровень (конечно, всё зависит от конвретной задачи).
При этом если руки кривые - то уже ничего не поможет. В этом случае лучше сразу выделить статически большой массив и использовать его и не заморачиваться с динамической памятью. Ибо все эти проблемы они никогда и никуда не уйдут. Чего бы там не придумали, чтобы облегчить жизнь программисту, всегда найдутся идиоты, которые из-за своей невнимательности и криворукости всё равно сделают нерабочий код, а потом начнут раздавать советы, что вот это не надо использовать, потому что это плохо
0
|
|
|
684 / 233 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
|
|
| 13.04.2009, 15:30 | |
|
думаю исходить надо из того что нью вызывает конструктор,а аллок тупо выделяет память
0
|
|
| 13.04.2009, 15:30 | |
|
В чем разница между malloc() и (char *)malloc() new vs malloc
malloc в С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|