-7

このままでいいのか。

LPWSTR lpwStr = new LPWSTR;
*lpwStr = new LPWSTR;

if (lpwStr){
    if (*lpwStr)
        delete (*lpwStr);
}

lpwStr も削除する必要がありますか ??? お気に入り:

if (lpwStr){
    if (*lpwStr) {
        delete (*lpwStr);
    }
    delete lpwStr;
}

2 番目のポインタがメモリ リークを示しています。1つ目と2つ目のどちらが正しいですか。ありがとう。

4

3 に答える 3

3

はい、一般的な規則として、deletefor every new(およびdelete []for every new []) が必要です。

ただし、内部チェックは必要ないことに注意してください。deletenull ポインターで呼び出すことは有効です。

于 2013-05-28T11:33:48.493 に答える
1

あなたはあなたが編集したすべてdelete のものnewをしなければなりませんが、なぜ、どのように行うのかわかりません*lpwStr = new LPWSTR;...

于 2013-05-28T11:33:41.773 に答える