Archived

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

Pointers and STL containers

This topic is 5781 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Given the defintition;
  
struct
{
	// In Game BOBs

	lpBOB			mousepointer;
	lpBOB			sheep;
	lpCharacter		player;
	lpGSTATE		gstate;
	//iCOORD			test;

} GameG ; 
  
and that the GSTATE class contains an object map of type vector. I use the following declarations to create a pointer to the vector:
  
GameG.gstate = new GSTATE(iTempWidth, iTempWidth);
vector<int>* ivMap = &GameG.gstate->map;
  
What does ivMap really point to? I was expecting ivMap[someint] to return the contents of the approipriate location within the gstate->map array/vector. Instead I get goobledigook.

Share this post


Link to post
Share on other sites
You can''t just treat the address of a vector as the same thing as the address of an array. Instead, use the address of the first element of the vector.

You should probably also give that struct a typename, for clarity.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]

Share this post


Link to post
Share on other sites