在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