I use string::copy function in my copy constructor(deep copy) and when I use it, it appends some not meaningful characters to my string. Here is my main function:
#include <iostream>
#include "SimpleMusicAlbum.h"
int main(){
    MusicAlbum msc("a7x","Seize the day",2005);
    cout << msc.getMusicAlbumArtist()   <<endl;
    cout << msc.getMusicAlbumTitle()    <<endl;
    cout << msc.getMusicAlbumYear()     <<endl;
    MusicAlbum msc2(msc);
    cout << msc2.getMusicAlbumArtist()   <<endl;
    cout << msc2.getMusicAlbumTitle()    <<endl;
    cout << msc2.getMusicAlbumYear()     <<endl;
    //MusicAlbum msc3(msc);
    return 0;
}
a strange point is that when I write a7x instead of Avenged sevenfold to title, it does not append characters.
Here is the header SimpleMusicAlbum.h:
#ifndef __SIMPLE_MUSIC_ALBUM_H
#define __SIMPLE_MUSIC_ALBUM_H
#include <string>
using namespace std;
class MusicAlbum {
 public:
    MusicAlbum(const string maArtist = "",
    const string maTitle = "",
    const int maYear = 0);
    ~MusicAlbum();
    MusicAlbum(const MusicAlbum &maToCopy);
    void operator=(const MusicAlbum &right);
    string getMusicAlbumArtist();
    string getMusicAlbumTitle();
    int getMusicAlbumYear();
 private:
    string artist;
    string title;
    int year;
};
#endif
Here is SimpleMusicAlbum.cpp:
MusicAlbum::MusicAlbum(const string maArtist,
            const string maTitle,
            const int maYear){
    artist = maArtist;
    title = maTitle;
    year = maYear;
}
//the problem is here
MusicAlbum::MusicAlbum(const MusicAlbum &maToCopy){
    char artistTemp[maToCopy.artist.size()] ;
    char titleTemp[maToCopy.title.size()];
    cout << maToCopy.artist.size() << endl;
    maToCopy.artist.copy(artistTemp, maToCopy.artist.size(), 0);
    artist = artistTemp;
    maToCopy.title.copy(titleTemp,maToCopy.title.size(),0);
    title = titleTemp;
    this->year = maToCopy.year;
}
//same problem occurs here
void MusicAlbum::operator=(const MusicAlbum &right){
    char artistTemp[right.artist.size()];
    char titleTemp[right.title.size()];
    right.artist.copy(artistTemp, right.artist.size(), 0);
    artist = artistTemp;
    right.title.copy(titleTemp,right.title.size(),0);
    title = titleTemp;
    this->year = right.year;
}
//destructor
MusicAlbum::~MusicAlbum(){
    // no allocation, no destruction.
}
//methods
string MusicAlbum::getMusicAlbumArtist() {
    return artist;
}
string MusicAlbum::getMusicAlbumTitle(){
    return title;
}
int MusicAlbum::getMusicAlbumYear(){
    return year;
}
 
     
    