I just got done with the Structures VTM which I liked a lot. But I was left a bit unclear on something about pointers and strings.

#include <iostream>
#include <cstring>

using namespace std;

struct monstersRat
	int HP;
	int ATK;
	char *name; //Why is a pointer necessary here?  
};                        //I came from VB and never had to use pointers
                           //Was this done automatically?

int main()
	monstersRat sRat;
	monstersRat gRat;

	sRat.name = "Small Rat";
	sRat.HP = 5;
	sRat.ATK = 1;

	gRat.name = "Giant Rat";
	gRat.HP = 15;
	gRat.ATK = 3;
	cout << sRat.name << endl;
	cout << sRat.HP<<endl ;
	cout << sRat.ATK<<endl ;

	cout <<endl<<endl<<endl;

	cout <<gRat.name <<endl;
	cout <<gRat.HP <<endl;
	cout <<gRat.ATK <<endl;


Hypothetically lets say this is Everquest or WOW. Would these monsters be loaded a) when you entered the Zone? Or b) would all of the monsters be loaded when you entered the game?

Also, should I be deleting the .names immediately or would it be when the player left the zone, or left the game? In this case do I even have to delete the .names since I'm not using an input function?

Thanks for any help