【发布时间】:2018-01-25 02:29:07
【问题描述】:
我知道如果我在头文件中创建一个指针,我应该总是在调用析构函数时删除它,但是如果我在函数内部创建一个指针呢?我知道基本变量在块的末尾会被销毁,指针也一样吗?
例如:
Class::Function()
{
int i = 3; // This gets destroyed after the function ends
int* j = 5; // What about this? Do I have to delete it somewhere to keep from a leak?
}
如果我在构造函数内部初始化j,我会说delete j; 以防止泄漏等。在这种情况下我应该做些什么吗?
【问题讨论】:
-
如果你没有
new它,就不要delete它。 -
我投了反对票,因为这个问题只表明你没有充分研究指针在 C++ 中的工作原理。所以,把它当作学习更多的动力。
-
如果你不在堆中分配任何内存你不必担心
-
它还能编译吗?
-
在嵌入式系统世界中,我们将硬件设备的地址分配给指针,以便访问设备。在这些情况下,没有分配内存,因此不使用
new或delete。
标签: c++ pointers memory-leaks