我正在尝试创建我自己的malloc函数,但我还没有完成。以下是我的代码的相关部分:
mymalloc.h:
#pragma once
#include <stdlib.h>
typedef struct METADATA{
struct METADATA *next;
struct METADATA *prev;
int free;
size_t size;
}METADATA;
METADATA *metadata;
void *mm_malloc(size_t size);mymalloc.c
#include "mm_alloc.h"
#include "stdlib.h"
#include "stdio.h"
void *mm_malloc(size_t size) {
if(size == 0)
return NULL;
METADATA *tmp;
long address;
if(metadata == NULL){
sbrk(sizeof(tmp));
sbrk(size);
address = sbrk(0);
return (void *)address;
}
}在mymalloc.c的sbrk(sizeof(tmp));部分,我得到了"Implicit declaration of function sbrk()"。我想做的是为新块的metadata创建一个位置,同时也为所需的大小创建一个位置。我哪里做错了?
发布于 2017-12-25 15:45:16
添加这行
#include <unistd.h>在文件'mymalloc.c‘的顶部,以便声明函数
https://stackoverflow.com/questions/47966708
复制相似问题