As the title states, I'm having problems deleting a dynamic character array. I run the program and it runs fine until I delete the character array that holds the player's name.
It gives me an error like this.
Code:
Debug Assertion Failed!
<directory to dbgdel.cpp> line 52
Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
Here is all the code that I believe to be related to the error
Code:
//in file Main.cpp
int main()
{
CGame* Game = new CGame;
Game->CreatePlayer();
delete Game;
Game = NULL;
return 0;
}
Code:
//in file Game.cpp
CGame::~_CGame(void)
{
CGame::CleanUp();
}
void CGame::CreatePlayer(void)
{
char name[50];
cout << "What is your name?\n";
cout << ">";
cin.getline(name, 50);
m_Player->SetName(name);
cout << "Your name is " << m_Player->GetName() << ".\n";
cin.get();
}
void CGame::CleanUp(void)
{
delete m_Player;
m_Player = NULL;
}
Code:
//in file Player.cpp
CPlayer::_CPlayer(void)
{
m_Name = new char[50];
}
CPlayer::~_CPlayer(void)
{
CPlayer::CleanUp();
}
char* CPlayer::GetName(void)
{
return m_Name;
}
void CPlayer::SetName(char* name)
{
m_Name = name;
}
void CPlayer::CleanUp(void)
{
delete[] m_Name;
m_Name = NULL;
}