为什么删除动态指针时会出错?

Why do I get an error deleting a dynamic pointer?

请不要过来说“只是阅读错误”,它没有指定它,所以我在这里问。

int main()
{
    int* p, * q;
    int a = 10;
    p = new int;
    p = &a;
delete p;
}
p = new int  

在这一行中,您动态分配需要的内存 delete

p = &a

但是在这一行中,您没有分配新内存,而是将 p 指向堆栈内存,并泄漏了您之前分配的内存。