Archived

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

tifkagh

Pointers and STL containers

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 need to dereference the pointer. Use the form

(*ivMap)[someInt]


--
Very simple ideas lie within the reach only of complex minds.

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