メモリ リークのあるプログラムがあり、コードに削除を追加するたびにクラッシュします。なぜこれが起こっているのか、誰かが何か知っているかどうか疑問に思っています。クラッシュするコードは以下です。これは、ファーストネームとラストネームが次のように宣言されている削除を伴うデスタクタです。
char* firstName;
char* lastName;
Name::~Name(){
delete[] firstName;
delete[] lastName;
}
ここにメモリが割り当てられます
Name::Name(Name& name){
//copys the first and last name from one Name to the other
firstName = new char [strlen(name.firstName)+1];
strcpy(firstName,name.firstName);
lastName = new char [strlen(name.lastName)+1];
strcpy(lastName,name.lastName);
}