Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/61: Рейтинг темы: голосов - 61, средняя оценка - 4.95
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873

malloc

20.06.2008, 16:00. Показов 12423. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, кто-нить может объяснить какие есть недостатки у этой функции, всегда юзал, а тут говорят, что это очень нехорошо, вот и стало интересно, почему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2008, 16:00
Ответы с готовыми решениями:

malloc, free error
Здравствуйте. Возникла следующая проблема. Код ниже: string http_headers = "GET /index.asd HTTP/1.0 Host: 127.0.0.1:1101...

Функция malloc() динамически увеличивает выделение памяти по мере необходимости?
Допустим, задаю malloc(3). Т.е. 3 байта. А переменная (точнее, массив, который получается динамическим) со временем (в цикле) становится...

Аналог malloc
Необходимо релизовать свой malloc.Интересует меня следующее: как malloc опирирует памятью? Я понимаю как составляется список блоков памяти....

26
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
23.06.2008, 16:21
Студворк — интернет-сервис помощи студентам
malloc / free - это язык С. new / delete - это C++. Исходя из этого, и стоит выбирать, какую из функций выделения/освобождения памяти применять.
0
 Аватар для dioxidin
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
30.08.2008, 19:20
Цитата Сообщение от DARK FURY Посмотреть сообщение
Алоки, стандарты С++.
Товарищи, смотрел вот надысь хелп от BDS2006 (уж не ругайте за использование скверных источников).. так там calloc и malloc указаны совместимыми и с "С", и с "С++". Как это понимать.. Не уж то я смогу пользоваться Аллоками при программировании, например, микроконтроллера какого-нить.

ПС: Я могу рассказать про недостаток их.. См. топик в "C++ Builder". Но альтернативы пока не вижу.
0
 Аватар для MsDos
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
Цитата Сообщение от MsDos Посмотреть сообщение
мы тут, кажется, целую горячую тему уже разводили об этих аллоках. пришли к выводу, что alloc == new и тому прочее соответственно, выбор остается за предпочтением.
alloc = new??? Скажете тоже...
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
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
12.04.2009, 18:21
Что new, что malloc - в конечном итоге всё равно попадаем в ОС. В случае юниксов это системный вызов brk или mmap, что в винде - не знаю. Чем пользоваться - зависит от ситуации. Если нужно выделить массив объектов - пользуйтесь new, если просто какой-то буффер в памяти - malloc. Если динамическая память нужна на время жизни процедуры и по завершении процедуры уже не нужна - alloca (это работает быстрее, т.к. фактически просто перенастраивается stack pointer). Современные расширения языков Си и Си++ позволяют динамические массивы. Моё мнение таково, что использовать нужно как можно более высокий уровень (конечно, всё зависит от конвретной задачи).

При этом если руки кривые - то уже ничего не поможет. В этом случае лучше сразу выделить статически большой массив и использовать его и не заморачиваться с динамической памятью. Ибо все эти проблемы они никогда и никуда не уйдут. Чего бы там не придумали, чтобы облегчить жизнь программисту, всегда найдутся идиоты, которые из-за своей невнимательности и криворукости всё равно сделают нерабочий код, а потом начнут раздавать советы, что вот это не надо использовать, потому что это плохо
0
 Аватар для Mecid
684 / 233 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
13.04.2009, 15:30
думаю исходить надо из того что нью вызывает конструктор,а аллок тупо выделяет память
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2009, 15:30

Создание двунаправленного списка с использованием malloc(), free()
При заполнении списка вылазит ошибка "Вызвано исключение по адресу 0x0FE7373F (vcruntime140d.dll) в файл.exe: 0xC0000005: нарушение прав...

В чем разница между malloc() и (char *)malloc()
Прошу помочь разобраться: не могу понять в чем разница междуs=malloc(sizeof(char)); иs=(char *)malloc(sizeof(char));Буду признателен вашим...

new vs malloc
Чем new безопаснее(или лучше?) malloc?

New и malloc
Если смотреть на выделение памяти для арифметических типов уступает ли функций new malloc'у в скорости? Если да, то насколько это критично?

malloc в С++
Подскажите пожалуйста как в данной программе выделить динамическую память с помощью malloc для объекта #include <iostream> ...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Локальный 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, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru