我正在尝试创建一个空闲列表来实现堆分配器。到目前为止,这是我定义结构的方式:
typedef struct headerT headerT;
struct headerT{
size_t payloadSize;
struct headerT* next; // unused field to make struct 8 bytes, simplifies alignment
};
headerT* freeList;
这是我初始化堆的方式:
int myinit()
{
freeList = InitHeapSegment(0); // InitHeapSegment resets heap segment to empty, no pages
//allocated
freeList->payloadSize = 0;
freeList->next=NULL;
return 0;
}
当函数尝试将有效负载大小更改为零时,我立即收到段错误。我在这里想念什么?