在libc中的malloc(x)时,该功能是所述的指针返回到存储器区域的至少x字节和指针对准8个字节。这种对齐意味着什么?谢谢。当malloc返回时,8字节对齐意味着什么?
5
A
回答
8
6
这意味着内存上的地址是8
至于为什么你甚至会在乎多开始:对于不是对齐的内存中,CPU有时需要两次访问阅读全部内容。在某些情况下,它甚至不会尝试并只会引发错误。提到“与8字节对齐”是为了让调用者知道它是否需要做任何指针的欺骗操作。
(通常情况下,你不会在乎 - 编译器负责大部分的对齐问题为您但是信息的存在,如果你需要它的一些原因。)
1
内存对齐描述模的地址。所以8字节对齐意味着他的地址是8的倍数。
这对于许多较旧的系统来说非常重要,因为地址需要在“字”边界上对齐,通常是四个字节或两个字节的倍数。如果没有正确对齐,程序会因'对齐错误'而崩溃。
更新的机器通过从任何地址加载来解决此问题,但通常这意味着加载数据需要几个周期。
相关问题
- 1. malloc意味着什么(int *)?
- 2. AuthorizationExecuteWithPrivileges()返回-1时意味着什么?
- 3. 当WriteProcessMemory返回487个ERROR_INVALID_ADDRESS时,这意味着什么?
- 4. 当python socket.sendall成功返回时,它意味着什么?
- 5. 什么是chrome.identity.getProfileUserInfo意味着返回?
- 6. 返回客户端意味着什么?
- 7. JAVA:对于ArrayIndexOutOfBoundsException异常,返回值意味着什么?
- 8. 在方法中返回对象意味着什么?
- 9. MySQL中的节点意味着什么?
- 10. 当Mockito的“何时”有多次“返回”呼叫时,这意味着什么?
- 11. 在void方法结束时返回意味着什么?
- 12. 创建工厂服务时返回$ http.post意味着什么?
- 13. 当malloc()或free()给你一个分段错误时,这意味着什么?
- 14. 当你使用Less时,“forcecompile”对YII意味着什么?
- 15. 'cb'在回送中意味着什么?
- 16. 什么呢回声$ {1 + “$ @”}意味着
- 17. /etc/ssh.cache对docker-sshd意味着什么?
- 18. 数值对于weka意味着什么
- 19. GL_UNSIGNED_BYTE对于glTexImage2D意味着什么?
- 20. 是什么对象@object意味着
- 21. '#if _LFS64_LARGEFILE-0'对CPP意味着什么?
- 22. 这对循环意味着什么?
- 23. 对于IPreInsertEventListeners,真假意味着什么?
- 24. void **意味着什么
- 25. PREEMPTIVE_XE_DISPATCHER这意味着什么?
- 26. Field.Index.NOT_ANALYZED_NO_NORMS意味着什么
- 27. HttpServletResponse.SC_BAD_REQUEST意味着什么?
- 28. 什么呢##意味着在$ {}
- 29. Solr意味着什么?
- 30. 溢出意味着什么?
一会,以保证CPU能够有效地读取存储器地址关心字节对齐。不对齐的内存块导致总线错误。请参阅此处的未对齐访问部分 - > http://en.wikipedia.org/wiki/Segmentation_fault#Bus_error – 2013-03-14 23:50:24