以下のコードは実行時エラーを引き起こします。明らかにunique_ptr
a
が有効範囲外になると、既に削除されているメモリを削除しようとするため、ヒープの問題が発生します。私の質問は、同じメモリを共有し、delete
コールを使用した後でもランタイムエラーが発生しないため、行Xで強調表示する必要がある変更点です。ラインX上でunique_ptrの実行時エラー
#include <iostream>
#include <memory>
using namespace std;
int main()
{
int* p = new int (10);
unique_ptr<int> a (p); // Line X
delete p;
return 0;
}