Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: C++ help

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.