Possible Duplicate:
C programming : How does free know how much to free?
How does delete
know how many bytes it has to free?
I read that there is some block before the actual pointer address that is returned by new which contains block address details.
Anyone here who knows how many bytes this block has or how the format of that block is?
In general, this is implementation-dependent.
The way this is usually implemented is that new/malloc will allocate slightly more bytes than you asked for, and will use the extra bytes for some book-keeping: many times the allocated blocks will also be maintained in a linked-list, and so the extra bytes will be used to store the next/prev pointer, as well as the size of the block.
This is not mandatory, however. The new/malloc calls can just as well store your pointer and the block's size in, say, a map.
If you're interested in a specific implementation, you will have to provide more information (e.g. what runtime/compiler are you using?).
new operator and malloc function handle memory in their own particular ways, so
If you are bound to try to mess up with the inner workings of malloc or new (which seems to be your goal), you're doing it wrong ^^
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With