Eya*_*yal 8 c++ memory memory-leaks
这是一个我无法找到答案的基本问题.
给定下一个代码,将发生内存泄漏:
int main(){
A* a = new A();
// 1
}
//2
Run Code Online (Sandbox Code Playgroud)
让我们说,一个获得了价值1000也就是说,在堆上地址1000现在采取的一个对象.在1,a == 1000和2 a超出范围.但缺少一些信息.
在现实生活中,地址1000是存储器中字节的地址.该字节没有存储有价值信息的信息.
我的问题:
谁保留这些信息?
这些信息是如何保存的?
哪个组件"知道"指针指向的位置?计算机如何知道指向sizeof(A)字节?
谢谢!
a sizeof(A)字节是保留的" - 你不能使用那个信息,你只需要将这些字节视为包含A通常 new 和 delete 运算符是在 malloc 和 free 之上实现的,尽管此细节未指定。malloc 和 free 都指向一个数据结构,该结构跟踪哪些内存区域已分配,哪些未分配,以及每个区域有多大。Knuth 的《计算机编程艺术》第 1 卷对一些分配器设计进行了很好的描述。
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |