2025-11-20 07:38:57
首地址就是地址块在内存中的起点位置,比如一个地址块有100字节,首地址是0x1000,那这个块的结束地址就是0x109F。地址块就像连续的砖头堆,首地址告诉你在哪里开始铺第一块砖,字节数说明要铺多少块砖。内存管理器就是根据首地址和字节数,给每个程序分配专属的砖头区。
为什么首地址和字节数要这样算呢?因为内存是按字节编址的,每个字节都有独立编号。比如系统分配100字节的内存块,首地址是0x1000,那这个块的结束地址就是0x1000+99=0x109F(因为从0开始计数)。如果下一个块首地址是0x1100,中间0x1004到0x109F都是当前块的。数据手册里写着"内存分配必须首地址对齐",比如32位系统对齐到16字节,64位对齐到64字节。这样能保证访问时不会跨过边界,比如首地址是0x1000,访问0x1001就是下一个字节,不会突然跳到0x1008。
本题链接: