這會導致我的程序有一個斷言失敗:獨特PTR初始化斷言失敗
int a = 5;
std::unique_ptr<int>intptr(&a);
錯誤
文件:F:\ DD \ vctools \ CRT \ crtw32 \雜項\ dbgdel。 CPP
線:32
表達式:_BLOCK_TYPE_IS_VALID(PHEAD> nBlockUse)
當我用「new」或「= make_unique(..)」初始化它時,它很好用,但我很想知道爲什麼我不能通過給現有變量的地址來初始化它。
您無法從堆棧分配或取消分配內存。由於在堆棧中聲明瞭'a',所以不能將其刪除,這是'unique_ptr'在超出範圍時嘗試執行的操作。 – CoryKramer 2014-10-22 12:02:05
出於興趣,你想在這裏做什麼? – doctorlove 2014-10-22 12:30:14
doctorlove - >沒什麼,我只是爲了學習目的而想學習的東西 – user2591935 2014-10-22 13:46:07