将x分配到y指向的位置是否会导致任何内存泄漏?

我正在分配 x 指向 y 指向的位置是否会导致任何内存泄漏?如果是的话,正确的做法是什么?

int *x, *y
x = new int;
y = new int;
*x = 3;
*y = 4;
x  = y;
delete x;

回答

是的,这将是内存泄漏。您可以在分配给之前通过delete-ing避免内存泄漏。然后,由于and指向同一个对象,您必须恰好是and之一(不是两者!)。xyxxydeletexy

通常,您应该更喜欢RAII 模式而不是直接调用new和调用delete。标准库提供了类似的智能指针std::unique_ptr和容器类std::vector,它们遵循这种有用的模式。


以上是将x分配到y指向的位置是否会导致任何内存泄漏?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>