いくつかのコードを 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* はオブジェクトへのポインター型ではありません。