我們可以分配位數的動態內存嗎?我知道malloc()
需要以字節爲單位的內存大小。我們可以寫一個內核模塊來分配內存嗎?這個模塊應該被用戶程序調用來分配內存。如果你們說是,我會開始研究它。是否有可能以位分配動態內存?
0
A
回答
5
首先,由於無法解決問題,因此您無法分配一些位(現代系統中甚至不支持字節)。存儲器地址總是給出數據總線的寬度(例如64位)。
如果你想模仿按位分配@ godel9是正確的。我更喜歡
ptr = malloc((numbits % 8) + 1).
+0
你的公式是錯誤的 - 它永遠不會分配超過8個字節 – mvp
+0
哎呀!你是對的! –
5
如果您需要分配足夠的內存來存儲numBits
位,你可以除以8 numBits
,圍捕,並調用malloc
與字節數。您可能需要在年底一些額外的位,但不應該是一個問題:
void *allocBits(size_t numBits) {
return malloc((numBits + 7)/8);
}
0
我認爲沒有理由寫這個模塊,因爲沒有任何硬件的方式在分配單個位內存在大多數情況下分爲32位區域。即使在8位體系結構中,最小數量的內存也只有一個字節,並且沒有辦法以硬件方式尋址單個位(除了ARM的位帶等特殊情況)。
相關問題
- 1. 在c/C++中的CPU緩存中分配靜態內存:是否有可能?
- 2. 您是否可以動態分配CFBundleDocumentTypes(使用私有API?)
- 3. 這是否被認爲是動態內存分配?
- 4. 是否可以動態定位ValidatorCalloutExtender?
- 5. 動態內存分配
- 6. 動態內存分配
- 7. java動態內存分配
- 8. 動態內存分配
- 9. RECV動態內存分配
- 10. 動態分配內存
- 11. 動態內存分配
- 12. 動態分配內存的所有權
- 13. LinkedList沒有動態內存分配
- 14. 在內存分配之前是否可以複製動態分配的數組指針?
- 15. gpuocelot是否支持CUDA設備中的動態內存分配?
- 16. 是否可以緩存動態網頁?
- 17. 是否可以爲調試過程分配更多內存?
- 18. 是否可以在Linux下分配某個扇區的內存?
- 19. 分配給動態數組時,內存是否在C++中分配?
- 20. 動態內存分配在C++上的動態分配內存中
- 21. 內存分配和動態內存分配
- 22. 是否可以動態分配一個向量?
- 23. 是否可以動態分配`在AngularJS NG-model`
- 24. wordpress。是否有可能擁有動態內容?
- 25. 動態內存分配不匹配
- 26. 是否可以釋放現有內存?
- 27. 動態與靜態內存分配
- 28. 是否有可能獲得雙倍內存中的原始位?
- 29. 是否有可能有載波的動態存儲路徑?
- 30. 是否有可能改變場動態
'ptr = malloc((numBits + 7)/ 8);' – godel9
你爲什麼要這麼做?最小的可尋址單元是字節。管理子字節尋址的開銷不僅會浪費您可能意識到的任何「收益」。 – 2013-12-18 06:59:49