Попробуйте создать массив указателей, но когда я пытаюсь найти местоположение (ошибка во время выполнения) - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь создать массив указателей для моего нового объекта. мой объект - команда. В команде у меня есть двойной указатель для футболистов (футболист ** игроков). Теперь я пытаюсь создать метод, который добавляет игрока для команды (все методы работают с динамической памятью). После того, как я создаю метод, метод работает, но у меня есть ошибка. в этой строке: "(* help) [i] = (* Players) [i];" когда я вхожу в команду из 2 игроков, это происходит. первый игрок - хороший игрок, но когда я иду к следующему игроку, я иду в неправильное место. Я думаю, что у меня ошибка в распределении. спасибо за помощь, я пытался быть ясным, но это трудно, если есть что-то неясное, я попытаюсь объяснить

#include "Team.h"

void Team::addPlayer(Footballer *newPlayer)
{
    AmountOfPlayers++;
    Footballer **help;
    help = new Footballer*[AmountOfPlayers - 1];
    for (int i = 0; i < AmountOfPlayers - 1; i++)
    {
        help[i] = new Footballer;
        (*help)[i] = (*Players)[i];                // this line call for operator "=" of footballer and i have worng location...
    }
    for (int i = 0; i < AmountOfPlayers - 1; i++)
    {
        delete Players[i];
    }
    delete[] Players;
    Players = new Footballer*[AmountOfPlayers];
    for (int i = 0; i < AmountOfPlayers; i++)
    {
        if (i == AmountOfPlayers - 1)
        {
            Players[i] = new Footballer;
            (*Players)[i] = *newPlayer;
        }
        else
        {
            Players[i] = new Footballer;
            (*Players)[i] = (*help)[i];
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...