I know that a segmentation fault is the equivalent of a null pointer
exception in Java, but I don't understand why it's happening here.  My
full code is posted at
http://www.espersunited.com/~michael/needhelp.txt .  Basically the
problem is this:

class battle
{
   private:
      Ally party[4];
};

battle::battle()
{
   party[0] = Ally("Michael", 10, 7);
   party[1] = Ally("Amy", 8, 13);
   party[2] = Ally("Feli", 12, 15);
   party[3] = Ally("Imp", 9, 4);
}

class Ally : public Character
{
   public:
      Ally(){}
      Ally(char*, long, long);
      ~Ally();
};

Ally::Ally(char* myname, long h, long m) : Character(myname, h, m)
{
printf("Arrived in Ally constructor for %s.\n", myname);
}

Character::Character(char *myName, long myMaxHP, long myMaxMP)
{
   strcpy(name,myName);
   maxHP = myMaxHP;
   maxMP = myMaxMP;

   currentHP = maxHP;
   currentMP = maxMP;
}

Now I've tracked the SegFault down to the battle constructor,
specifically the line where the 'Amy' Ally is being created.  The
program enters the Ally constructor, and then SegFaults.  I have very
little experience with gdb and ddd doesn't work at all.  Can anyone see
the problem with this?  Am I out of stack space?  Do I need to start
using the heap?



Reply via email to