CプロジェクトにMallocを手動で実装しようとしています。これが私のコードです:
void *Mem_Alloc(int size) {
struct Node *p, *prevp = head;
if (fitPolicy == P_BESTFIT) {
}
if (fitPolicy == P_FIRSTFIT) {
for (p = prevp->next; ;prevp = p, p = p->next) {
if (p->size >= size) {
if (p->size == size)
prevp->next = p->next;
else {
p->size -= size;
p += p->size;
// p->size = size;
}
head = prevp;
return (void *)(p+1);
}
if (p == head) {
return NULL;
}
}
}
if (fitPolicy == P_WORSTFIT) {
}
return NULL;
}
基本的に、私は;mmap
と呼ばれる別のメソッドを呼び出します。Mem_Init
次に、返されたメモリマップは変数によって示されますhead
。の途中のコメント部分で常にセグメンテーション違反が発生しMem_Alloc
ます。何故かはわからない。皆さん、これを手伝ってくれませんか?いくつかのヒント?