Author: Dan Newman
Date: 13:56:31 06/09/00
Go up one level in this thread
On June 09, 2000 at 16:33:25, James Robertson wrote: >Will my program get sick if I write: > >int *a = new int[64]; >int *b = a; >.... >delete [] b; > >? > >This question stems from my lack of knowledge about how a program knows how much >memory it has allocated at runtime. That is to say, where does the program store >the size of a so the memory will be freed if you call delete []? If you try to >free this memory from another pointer (b) will it still know that 64 ints need >to be deleted? > >James Yes. The number of elements gets recorded somewhere. I don't know the details of the implementation, but I've always imagined that an extra word gets alocated just ahead of the array to hold the count... -Dan.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.