私のアプリケーションでは、私のAVIビデオプレーヤーがメモリをリークしていることを絞り込んだ。異なるポインタ型にコピーされたポインタを削除するとメモリリークが発生しますか?
が...
LPBYTE pChunk = new BYTE[lSize];
if(!pChunk)
return false;
hr = AVIStreamReadFormat(pStream, AVIStreamStart(pStream), pChunk, &lSize);
if(hr)
{
delete [] pChunk;
return false;
}
m_pVideoFormats[i] = (LPBITMAPINFO)pChunk;
その後、それはビデオを削除するには時間が来るときに、私は単純に削除します:
if(m_pVideoFormats[i])
delete [] ((LPBYTE)m_pVideoFormats[i]);
このため、どのように私はこれをキャストてるのメモリリークが発生する私は、次のコードを持っていますポインタ周り?ありがとう!
いいえ、オブジェクトは、キャストに関係なく、削除されると独自のサイズを認識します。 sidenoteとして、NULLポインタの削除が完全に有効であるため、NULLとは違うかどうかを確認する必要はありません。 – oddstar