Re: Проблема с менеджером кучи
От: _alm_ Украина  
Дата: 15.12.06 17:48
Оценка:
Здравствуйте, CO6SENYA, Вы писали:

COS>Здравствуйте, Ребята.

COS>У меня такая проблема..... Пишу программу, в которой реализуется сделаный мною менеджер кучи. Создаю кучу размером 100, а пытаюсь выделить память размером 500*sizeof(int). Но HeapAlloc не возвращает NULL, а выделяет память. В чём дело ? Вот листинг проги.
COS>void* operator new(size_t size,HANDLE k)
COS>{
COS>    puts("Run");
COS>    void *p;
COS>    if(k==NULL)
COS>    {
COS>        k=HeapCreate(0,0,100);
COS>    }

COS>    x=(int*)operator new(500*sizeof(int),k);


COS>помоги, плз.


Хип оперирует страницами, а не байтами. Объем страницы, насколько помню — 4096 байт. Ты ограничил размер хипа от 0 до 100 байтов — 1 страница. 500 интов — это 2000 байт. Так что никакой мистики.
Попробуй выделить память для 2000 интов. Сам проверить не могу — я ща под БСД вижу.

ЗЫ. А ваще — баян.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.