malloc的底层实现,是否是sdk?

时间:2021-12-08 03:17:06
new的底层实现是malloc
malloc底层实现是sdk?

具体大家能不能讲讲一般在什么地方,c/c++会用到sdk?

10 个解决方案

#1


malloc底层会调用操作系统提供的api。比如windows的HeapAlloc

#2


貌似有个sbrk()

#3


malloc应该是调用的windows api吧

#4


malloc好像会用到localaloc

#5


大牛们,那能不能详解一下,具体一般在什么地方什么时间,c/c++会用到sdk?

如malloc这种底层的设计。。。。。。

#6


new是malloc+placement new.
malloc是调用系统API virtualAlloc

#7


引用 1 楼 luciferisnotsatan 的回复:
malloc底层会调用操作系统提供的api。比如windows的HeapAlloc


顶,, 进去发现就是这个

#8


单步调试和设断点调试是程序员必须掌握的技能之一。
在malloc函数执行时按F11,看看最后会走到Windows的哪个对应的API吧。

#9


malloc就是在HeapAlloc上又包装了一层,加入了C风格的管理方式,速度要慢一些。
HeapAlloc用的VirtualAlloc分配整块内存页,内部实现了一个堆机制。其实直接用HeapAlloc代替malloc就可以,速度还快不到一倍。
凡是设置文件、内存分配、IO、进程线程等地方C库内部都会去调用系统的API函数。

#10


Linux下malloc调用的是sbrk系统调用

#1


malloc底层会调用操作系统提供的api。比如windows的HeapAlloc

#2


貌似有个sbrk()

#3


malloc应该是调用的windows api吧

#4


malloc好像会用到localaloc

#5


大牛们,那能不能详解一下,具体一般在什么地方什么时间,c/c++会用到sdk?

如malloc这种底层的设计。。。。。。

#6


new是malloc+placement new.
malloc是调用系统API virtualAlloc

#7


引用 1 楼 luciferisnotsatan 的回复:
malloc底层会调用操作系统提供的api。比如windows的HeapAlloc


顶,, 进去发现就是这个

#8


单步调试和设断点调试是程序员必须掌握的技能之一。
在malloc函数执行时按F11,看看最后会走到Windows的哪个对应的API吧。

#9


malloc就是在HeapAlloc上又包装了一层,加入了C风格的管理方式,速度要慢一些。
HeapAlloc用的VirtualAlloc分配整块内存页,内部实现了一个堆机制。其实直接用HeapAlloc代替malloc就可以,速度还快不到一倍。
凡是设置文件、内存分配、IO、进程线程等地方C库内部都会去调用系统的API函数。

#10


Linux下malloc调用的是sbrk系统调用