私はこのクラスを持っています:
class Base{
private:
char *message;
public:
Base(string message`);
~Base();
};
編集済み:申し訳ありませんが、コンストラクターを提供するのを忘れました!
以下のようにデストラクタを実装すると:
Base::Base(string message1){
message = new char[message1.size() + 1]
message[message1.size()] = '\0';
memcpy(message, message1.c_str(), message.size());
}
Base::~Base(){
delete message;
}
時々システムがエラーでうまくいかないことがありstop working
ますが、代わりにdelete message
、私が使用する場合message = NULL
、すべてが大丈夫です!それで、message = NULL
デストラクタで宣言しただけの場合、プログラムでメモリリークが発生しますか?