Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Malloc vs New


Автор: Stranger2048 28.8.2008, 17:43
Доброе время суток, уважаемые друзья-программисты! Кто-нибудь может подсказать, где можно найти внутреннюю реализацию malloc и new, скажем от MS Visual Studio и CodeGear?

Автор: Lazin 28.8.2008, 18:17
поищи в MSDN описание функции HeapAlloc

Автор: Stranger2048 28.8.2008, 18:34
Спасибо за тонкий намёк, но я в курсе что делает эта функция, и где резервируется память malloc и new... smile К твоему сведению, в Visual Studio, напрмиер, есть две реализации оператора new, одна с внутренним вызовом malloc, другая с вызовом _heap_alloc. 

Автор: W4FhLF 28.8.2008, 18:39
Если просто интересно внутреннее устройство, то возьми в студии простую программу:

Код

int main()
{
  int* i = new int;
  delete i;
  return 0;
}


И в debug-сборке сделай трейс этих строк с заходов в процедуры(F11). Увидешь реализацию(файлы new.cpp и dbgheap.c).

Добавлено через 14 минут и 35 секунд
Цитата(Stranger2048 @  28.8.2008,  18:34 Найти цитируемый пост)
одна с внутренним вызовом malloc, другая с вызовом _heap_alloc. 


Да, и вызов зависит от дефайна _SYSCRT. Только непонятно, что он значит? Т.е. должны сущестсовать два типа сишных run-time библиотек. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)