C 函数sbrk()的隐式声明

C 函数sbrk()的隐式声明,c,C,我正在尝试创建自己的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_mallo

我正在尝试创建自己的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);
sbrk中(sizeof(tmp))元数据
创建一个位置,同时为所需大小创建一个位置。我哪里做错了?

添加行

#include <unistd.h>
#包括
在文件“mymalloc.c”的顶部,以便声明函数

添加行

#include <unistd.h>
#包括

在文件“mymalloc.c”的顶部,根据
man sbrk
声明函数,其声明位于unistd.h.
sbrk
现在已经过时。使用并研究一些C标准库(如或…)中现有的
malloc
s的实现。我错过了这一部分,很抱歉这个愚蠢的问题。谢谢,@BasileStarynkevitch实际上这是我的家庭作业,所以我需要使用sbrk()。不过还是要谢谢你,我也会看看。根据你的环境/版本/…,你可能还需要定义一个功能测试宏来删除
sbrk
警告。将
#define _GNU_SOURCE
添加到文件顶部将删除警告。这包括了比您实际需要的更多的sbrk,因此请查看unistd.h以查看
sbrk
所需的特定设置。根据
man sbrk
,其声明位于unistd.h。
sbrk
现在已经过时。使用并研究一些C标准库(如或…)中现有的
malloc
s的实现。我错过了这一部分,很抱歉这个愚蠢的问题。谢谢,@BasileStarynkevitch实际上这是我的家庭作业,所以我需要使用sbrk()。不过还是要谢谢你,我也会看看。根据你的环境/版本/…,你可能还需要定义一个功能测试宏来删除
sbrk
警告。将
#define _GNU_SOURCE
添加到文件顶部将删除警告。这包括了sbrk实际需要的更多内容,因此请查看unistd.h以查看
sbrk
所需的特定设置。