![]() |
1
2
可以 在操作系统本身中实现(理论上),它通常不是。操作系统跟踪的是分配给整个流程的页面,而不是在这个抽象级别分配的单个块。 |
![]() |
2
5
是的,操作系统(或者更可能是库)会跟踪。 当你分配内存时,操作系统会给你的内存创建一个小的头,它通常就在你分配的内存之前——也就是说,在一个稍微低一些的地址上创建几个字节。 释放内存时,它会获取被释放的指针,返回几个字节,并检查描述实际分配内容的结构,包括分配内容的大小。 |
![]() |
3
1
它完全依赖于实现。与常规的malloc()/free()非常相似,正如您所提到的,系统必须保存一些额外的信息。通常,对malloc()或new运算符的调用在指针返回给您之前在内存中设置一个头结构,以便稍后调用free()或delete运算符时,它可以找出您传递给它的内存块的情况。 |
![]() |
4
0
这取决于实现,但我认为运行库使用某种内存分配表来跟踪分配的块。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |