1
int a;
int *b;
void test(int* target)
{
delete(target);
}
test(new int); // <-- It's ok, of course.
test(&a); // <-- It raises assertion fail, of course, too.
鑑於以上代碼。我只知道target
是一個指向整數的指針。我怎樣才能說出參數指針的來源?如何判斷指針參數的來源?
你是什麼意思的來源? – Annabelle
你對分配的東西沒有可視性。這取決於你跟蹤。 – Joe
你根本無法可靠地做到這一點。這就是爲什麼手動內存管理很複雜並且最好避免的原因,否則你可能會拋出if(safe_to_delete(ptr))delete ptr;並且很高興。 – us2012