有没有想过:malloc分配的内存空间地址连续吗
💡
原文中文,约1600字,阅读约需4分钟。
📝
内容提要
在C语言中,通过malloc函数向操作系统请求内存空间时,所得到的地址并不是连续的。使用一次malloc申请多个地址时,结果是连续的。但是,多次malloc申请地址时,地址并不是连续的。这是因为内存边界对齐的问题,虚拟内存地址到物理内存地址进行转换时,相邻的两个字节可能在不同的物理分页上。
🎯
关键要点
- 在C语言中,使用malloc函数请求内存时,得到的地址不一定是连续的。
- 多次使用malloc申请内存时,地址通常不是连续的,这是由于内存边界对齐的问题。
- 使用一次malloc申请多个地址(如数组)时,得到的地址是连续的。
- 测试结果显示,多次malloc申请的地址之间存在固定间隔,且不连续。
- 虚拟内存地址在物理内存中可能不连续,因为相邻字节可能位于不同的物理分页上。
- 文章鼓励读者在自己的电脑上进行测试,并预告将讨论字节对齐原则、malloc原理和内存分配等问题。
➡️