为什么删除动态指针时会出错?
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
指向堆栈内存,并泄漏了您之前分配的内存。
请不要过来说“只是阅读错误”,它没有指定它,所以我在这里问。
int main()
{
int* p, * q;
int a = 10;
p = new int;
p = &a;
delete p;
}
p = new int
在这一行中,您动态分配需要的内存 delete
。
p = &a
但是在这一行中,您没有分配新内存,而是将 p
指向堆栈内存,并泄漏了您之前分配的内存。