Здравствуйте, 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 интов. Сам проверить не могу — я ща под БСД вижу.
ЗЫ. А ваще — баян.