Windowsアプリケーションのソースですが

   class TextClass : public exception
   {
   public:
      void Release();   // リソースの開放
   private:
      LPTSTR message;
      void SetMessage(LPCTSTR message);
   };

   void TextClass::SetMessage(LPCTSTR message)
   {
      // クラス変数にコピー
      this->message = (LPTSTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (lstrlen(message) + 1) * sizeof(TCHAR));
      lstrcpy(this->message, message);
   }


外部からSetMessage()を2回呼ばれると
1回目に確保したメモリがリークしませんか?
「すでにメモリ割り当てを行っていたら開放してから再割当て」
という処理を書く必要があると思うのですが
それを調べる方法はあるのでしょうか?
制御用の変数を新たに作って制御する必要がありますでしょうか?