0
此代碼在最後一行提出分段錯誤。頭是一個指向連續內存塊的指針,它全部爲0,並且取消引用其餘部分返回0,這可能與該問題有關。我仍然覺得這應該起作用,那麼問題是什麼?嘗試設置取消引用的指針時發生分段錯誤?
void setHeader(void *header, size_t payload) {
size_t *remainder = (size_t*)((char *)header + (payload + 4));
*remainder = payload;
}
你如何分配頭和什麼是有效載荷? – 2012-08-11 23:08:02
此代碼適用於內存分配器。頭部是從一個叫做ExtendHeapSegment的函數返回的指針,它擴展了堆的大小並返回新的內存塊的頭部。我不確定這個塊的實際內容/後勤情況,但它來自任何內核進程擴展堆(不知道細節)。 – 2012-08-11 23:11:52