Я пытаюсь создать массив указателей для моего нового объекта.
мой объект - команда.
В команде у меня есть двойной указатель для футболистов (футболист ** игроков).
Теперь я пытаюсь создать метод, который добавляет игрока для команды (все методы работают с динамической памятью).
После того, как я создаю метод, метод работает, но у меня есть ошибка.
в этой строке:
"(* 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];
}
}
}