Thank you very much, Coder, for your reply. I've learned many things, and the link now works.
There's only one point that I don't understand : why should my memory manager have any problems with the other programs ? The other programs would simply continue to use the standard memory manager of windows, and the fact that my program uses a different memory manager should be transparent to them. I'm not sure that I've clearly explained what I was doing. I'm only doing a "pooled" memory management, i.e., I begin my program with, for example,
Code:
unsigned int *pool = new unsigned int [1048576]; // allocates 4MB
unsigned int *free_space = pool;
then my alloc routine does :
Code:
unsigned int *buf = free_space;
free_space += required_space + HEADER_SIZE;
FillTheHeader
return buf;
my free routine does :
Code:
MarkTheHeaderToRememberThatItHasBeenFreed
(Of course, in my program that's much more complicated, due to the garbage collector).
So, Coder, do you see any problem with that code ?