I'm building a domino game and trying to make a function that adds a Stone to a pile. This is the Stone class:
class Stone
{
public:
    Stone(){ left = 0; right = 0; };
    Stone(int x, int y){ left = x; right = y; };
    void turnStone();
    bool comStones(const Stone&);
    void printOpen();
    void printClosed();
    friend class Pile;
    friend class Game;
private:
    int left, right;
};
And this is the Pile class:
class Pile
{
public:
    Pile(){};
    Stone indexfun(int);
    void printOpen();
    void printClosed();
    void fillPile();
    void randPile();
    void addStone(Stone&);
    void remStone(Stone&);
    friend class Player;
    friend class Game;
private:
    Stone* list;
    int size=0;
};
Now the function I built for adding a stone to the pile is:
void Pile::addStone(Stone& newStone) {
    Stone* newList = new Stone[size + 1];
    int i;
    for (i = 0; i < size; i++)
    {
        newList[i] = list[i];
    }
    newList[i] = newStone;
    delete[] list;
    list = newList;
    size++;
}
When I try and build the newlist array it throws me out of the program. can't find the reason. Help anyone?
the previous functions and more classes in the project:
class Game
{
public:
    Game(char*);
    void run();
private:
    Player human, computer;
    Pile box, table;
    int start, finish;
    void playerMove(int);
    void checkPile(int);
    bool checkMove(int,int);
    bool whosFirst();
    bool checkGame();
    void printTable();
};
class Player
{
public:
    Player(){};
    void addStone(Stone&);
    void remStone(Stone&);
    void printPile();
    Stone* searchStone();
    friend class Game;
private:
    char* name;
    Pile pie;
};
void Game::run() {
    cout << "starting the game" << endl;
    box.fillPile();
    box.size = 28;
    box.randPile();
    for (int i = 0; i < 7; i++)
    {
        human.addStone(box.list[i]);
        box.remStone(box.list[i]);
        computer.addStone(box.list[i]);
        box.remStone(box.list[i]);
    }
}
void Player::addStone(Stone& added) {
    pie.addStone(added);
}
int main()
{
    char name[80];
    cout << "enter your name" << endl;
    cin >> name;
    Game game(name);
    game.run();
}
 
    