繁体   English   中英

重定向指针会导致内存泄漏吗?

[英]Does redirecting a pointer introduce memory leak?

我有两点建议:

int *a = new int;
int *b = new int;

现在我设置b等于a

b=a;

我担心的是b最初指向的内存。 当我重定向b为指向内存中a点,并都指向同一个内存位置。 b之前的内存位置呢,是被释放了还是内存泄漏了?

为了防止内存泄漏,我应该这样做:

delete b;
b=a;

这是泄漏。

您应该改用智能指针。

这是内存泄漏。 你没有deletenew ed 因为b不再指向原始位置。 尝试这个:

int* a = new int;
int* b = new int;
int* originalb = b;
b = a;
delete originalb;
delete b; // or a

假设ab保持不变。
话虽如此,与原始指针相比,更喜欢智能指针容器RAII

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM