there is a function which creates new memory and is used in constructor.
However, I do not know how to access it in destructor to delete it.
In constructor is used (same file) player.cpp
#include
#include "Player.h"
// TODO: Fix the bugs in this file
Player::Player(const char* name) : name_(0)
{
copyString(&name_, name);
}
Player::Player(const Player& copy) : name_(0)
{
name_ = copy.name_;
}
Player::~Player()
{
delete [] name_; // Not sure if it works. errors promts- double free
}
Player& Player::operator=(const Player& copy)
{
return *this;
}
void Player::copyString(char** dest, const char* source)
{
unsigned int str_len = strlen(source);
char* str = new char[str_len+1]; //This line
strncpy(str, source, str_len);
str[str_len] = '\0';
*dest = str;
}
std::ostream& operator<<(std::ostream& out, const Player& player)
{
out << player.name_ << std::endl;
return out;
}
All i am allowed to change are .cpp files.
I have added delete line i destructor, but error shows up.
No comments:
Post a Comment