malloc和free不是系统调用,而是库函数。因此,malloc和free管理的不是内核内存,而只是用户内存,严格地说,是操作系统给用户进程分配的堆内存。
但是,用户进程的堆内存也不是固定不变的。虽说对32位机的Linux的进程来说,最大的可访问地址为4G(2的32次方),但是内核并非一开始就赋予某个进程4G地址空间的使用权。因此,用户进程的堆内存也是要向内核申请的。
malloc函数可以看做对用户进程申请到的堆内存的分配,而free函数可以看做对用户进程申请到的堆内存的回收。
本文解析了malloc和free作为库函数的角色,而非系统调用。它们管理的是用户进程的堆内存,而非内核内存。此外,文章还介绍了用户进程如何通过这两个函数来申请和释放堆内存。
malloc和free不是系统调用,而是库函数。因此,malloc和free管理的不是内核内存,而只是用户内存,严格地说,是操作系统给用户进程分配的堆内存。
但是,用户进程的堆内存也不是固定不变的。虽说对32位机的Linux的进程来说,最大的可访问地址为4G(2的32次方),但是内核并非一开始就赋予某个进程4G地址空间的使用权。因此,用户进程的堆内存也是要向内核申请的。
malloc函数可以看做对用户进程申请到的堆内存的分配,而free函数可以看做对用户进程申请到的堆内存的回收。

被折叠的 条评论
为什么被折叠?