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