cod*_*ody 5 c malloc memory-management
在libc的malloc(x)中,该函数被称为返回指向至少x字节的内存区域的指针,并且指针对齐到8字节.这种对齐意味着什么?谢谢.
这意味着指向的地址mod 8为0:
pointer % 8 == 0
Run Code Online (Sandbox Code Playgroud)
这对于可能影响正确性或效率的低级操作非常重要.另见这个答案.
这意味着内存从8的倍数开始.
至于为什么你甚至会关心:对于没有对齐的内存,CPU有时需要两次访问来全部读取.在某些情况下,它甚至不会尝试,只会抛出错误.提到"对齐到8个字节"是为了让调用者知道它是否必须对指针进行任何捏造.
(通常,您不会在意 - 编译器会为您处理大部分对齐问题.但是如果出于某种原因需要它,那么信息就会存在.)
| 归档时间: |
|
| 查看次数: |
2795 次 |
| 最近记录: |