Archived

This topic is now archived and is closed to further replies.

PhiberOptic

Internal C++ pointer/array management

Recommended Posts

PhiberOptic    128
Hi there! When I was coding some things, a question came up. How does C++ remember the size of an array located on the heap? Like this: int* pInts = new int[100]; Then I want to delete them with delete [] pInts; Okay, in this example, the compiler might easily "remember" how many ints to delete since "100" is a constant, but what if it''s a variable like: int sz = 100; int* pInts = new int[sz]; delete [] pInts; Does the compiler generate a size variable somewhere to remember how many ints I''ve allocated or what? ---------------------------------------------- Petter Nordlander "There are only 10 kinds of people in the world. The who understand binary and those who don''t"

Share this post


Link to post
Share on other sites
PhiberOptic    128
I can''t see any way it should work if it does not. But I thought there might be one..

----------------------------------------------
Petter Nordlander

"There are only 10 kinds of people in the world. The who understand binary and those who don''t"

Share this post


Link to post
Share on other sites
Nik02    4348
quote:
Original post by PhiberOptic


Does the compiler generate a size variable somewhere to remember how many ints I''ve allocated or what?




It has to. However, it does this automatically only for convenience.

Same type of automation works in arrays of any type.
The compiler stores automatically the size of one element.

Share this post


Link to post
Share on other sites
PhiberOptic    128
Thanks! Perfectly! Exactly what I was looking for...
btw, I might have you on my ICQ list.. I''m not sure.. :-)

----------------------------------------------
Petter Nordlander

"There are only 10 kinds of people in the world. The who understand binary and those who don''t"

Share this post


Link to post
Share on other sites