Проблема с менеджером кучи
От: CO6SENYA  
Дата: 15.12.06 17:31
Оценка:
Здравствуйте, Ребята.
У меня такая проблема..... Пишу программу, в которой реализуется сделаный мною менеджер кучи. Создаю кучу размером 100, а пытаюсь выделить память размером 500*sizeof(int). Но HeapAlloc не возвращает NULL, а выделяет память. В чём дело ? Вот листинг проги.
#include<stdio.h>
#include<windows.h>
#include<malloc.h>    
void* operator new(size_t size,HANDLE k)
{
    puts("Run");
    void *p;
    if(k==NULL)
    {
        k=HeapCreate(0,0,100);
    }

    if((p=HeapAlloc(k,HEAP_ZERO_MEMORY,size))!=NULL)
    {
        puts("Pamyat videlena");
        printf("%d\n",HeapSize(k,0,p));
        return (p);
    }
    else
    {
        puts("Memory not run");
        return NULL;
    }
}
void main()
{
    int n;
    HANDLE k=NULL;
    n=0;
    int *x;
    x=(int*)operator new(500*sizeof(int),k);
}

помоги, плз.
заранее спасибо.

18.12.06 12:37: Перенесено модератором из 'Коллеги, улыбнитесь'. И добавлено форматирование. — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.