1
我想知道,獲得給定內存地址的頭指針的最佳方式是什麼?例如,如果在地址0
處分配了p
,則大小爲32 bytes
如何從地址12
返回0
?換句話說,從地址進一步回到數據結構中的「主地址」。那可能嗎?如何獲得指針的頭部?
歡迎任何幫助,謝謝!
我想知道,獲得給定內存地址的頭指針的最佳方式是什麼?例如,如果在地址0
處分配了p
,則大小爲32 bytes
如何從地址12
返回0
?換句話說,從地址進一步回到數據結構中的「主地址」。那可能嗎?如何獲得指針的頭部?
歡迎任何幫助,謝謝!
對於結構體,這可以通過使用container_of
宏來實現,前提是您知道它的類型,並且您有一個指向其成員的指針(例如,如果給出指向成員的指針,則獲取結構體的指針)。對於使用malloc
完成的內存分配,這是不可能的,除非你有你已經穿過的長度或抵消你當前的長度。
container_of做的伎倆,謝謝! –
注意'container_of'不是一個標準的C++宏 –
@ Cheersandhth.-Alf它是一個C宏,因此它只能與結構一起工作。 –