0

いくつかのコードを Ubuntu Server の新しい G++ に移植しようとしています。このコードが何をしようとしているのかはわかりませんが、一見すると、ポインターに関連付けられたメモリを削除しようとしています。

    class mem_block
    {
     public:
      class mem_block*    next;
      void*               pntr;
      int                 size;

    mem_block( int i ) {
      record_new( sizeof( mem_block ), MEM_MEMORY );
      size  = i;
      pntr  = new char[size];
      return;
      }

    ~mem_block( ) {
      record_delete( sizeof( mem_block ), MEM_MEMORY );
      delete *pntr; // Troubled line.
      return;
      }
  };

今、削除しようとしました [] pntr; (元々はそうでした)、現在の形式などです...コードをコメントアウトすると、大規模なメモリリークが発生するので、コメントアウトしたくありません。

何か案は?void* を削除できません。この場合、void* はオブジェクトへのポインター型ではありません。

4

2 に答える 2