Der folgende Code führt zu Laufzeitfehler. Offensichtlich, wenn unique_ptr
a
den Geltungsbereich verlässt, versucht es, den Speicher zu löschen, der bereits gelöscht worden ist, so verursacht ein Heap-Problem. Meine Frage ist, welche Änderungen ich in Zeile X vornehmen sollte, da sie denselben Speicher teilen und es auch nach der Verwendung des Aufrufs delete
keinen Laufzeitfehler gibt.Laufzeitfehler mit 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;
}