C++ Stack Overflow
Here is some code:

void main()
{
  GameEngine ge("phil", "anotherguy");

  string response;

  do {
 
ge.playGame();
    
cout << endl << "Do you want to (r)eplay the same battle, (s)tart a new battle, or (q)uit? ";
 
cin >> response;
  
}while(response == "r" || response == "R" || response == "s" || response == "S" );

}


GameEngine::GameEngine(string name1, string name2)
{
 
 p1Name = name1;
  
p2Name = name2;

}

void GameEngine::playGame()
{
 
 cout << "PLAY GAME" << endl;
 
 Army p1, p2;
 
 Battlefield testField;
 
 RuleSet rs;
 
 int xSize = 13; // Number of rows
 
 int ySize = 13; // Number of columns

 
 loadData(p1, p2, testField, rs, xSize, ySize);

  ...

}

void GameEngine::loadData(Army& p1, Army& p2, Battlefield& testField, RuleSet& rs, int& xSize, int& ySize)
{

  string terrain = BattlefieldUtils::pickTerrain();
  
string armySplit[14];//id index 1
  
string ruleSplit[19];//in index 7
 
 string armyP1, armyP2, ruleSet;
  
Skill p1Skills[8];
 
 Skill p2Skills[8];  
 
 CreatureStack p1Stacks[20];
  
CreatureStack p2Stacks[20];
 
 ...

}

CreatureStack(){quantity = 0; isLive = false; id = -1;};

Army(){};

Battlefield(){};

RuleSet(){};


I have posted every line of code that executes until the program crashes.  This code ran fine for a long time, I added some stuff that does not even execute until way after the code I have posted here, and bam stack overflow that occurs at GameEngine::loadData() line: CreatureStack p2Stacks[20]; will not go away.  What am I doing wrong here?  Is that all the stack can handle?  I increased the stack size in Visual Studio and got the error to go away, but that slowed things down considerably, so I would rather just get to the source of the issue and fix that.
C++ Stack Overflow
===

Here is some code:

void main()
{
  GameEngine ge("phil", "anotherguy");

  string response;

  do {
 
ge.playGame();
    
cout << endl << "Do you want to (r)eplay the same battle, (s)tart a new battle, or (q)uit? ";
 
cin >> response;
  
}while(response == "r" || response == "R" || response == "s" || response == "S" );

}


GameEngine::GameEngine(string name1, string name2)
{
 
 p1Name = name1;
  
p2Name = name2;

}

void GameEngine::playGame()
{
 
 cout << "PLAY GAME" << endl;
 
 Army p1, p2;
 
 Battlefield testField;
 
 RuleSet rs;
 
 int xSize = 13; // Number of rows
 
 int ySize = 13; // Number of columns

 
 loadData(p1, p2, testField, rs, xSize, ySize);

  ...

}

void GameEngine::loadData(Army& p1, Army& p2, Battlefield& testField, RuleSet& rs, int& xSize, int& ySize)
{

  string terrain = BattlefieldUtils::pickTerrain();
  
string armySplit[14];//id index 1
  
string ruleSplit[19];//in index 7
 
 string armyP1, armyP2, ruleSet;
  
Skill p1Skills[8];
 
 Skill p2Skills[8];  
 
 CreatureStack p1Stacks[20];
  
CreatureStack p2Stacks[20];
 
 ...

}

CreatureStack(){quantity = 0; isLive = false; id = -1;};

Army(){};

Battlefield(){};

RuleSet(){};


I have posted every line of code that executes until the program crashes.  This code ran fine for a long time, I added some stuff that does not even execute until way after the code I have posted here, and bam stack overflow that occurs at GameEngine::loadData() line: CreatureStack p2Stacks[20]; will not go away.  What am I doing wrong here?  Is that all the stack can handle?  I increased the stack size in Visual Studio and got the error to go away, but that slowed things down considerably, so I would rather just get to the source of the issue and fix that.