gpt4 book ai didi

c - 函数 sbrk( ) 的隐式声明

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:04 28 4
gpt4 key购买 nike

我正在尝试创建我自己的 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.csbrk(sizeof(tmp)); 部分,我得到了 “Implicit declaration of function sbrk()”。我想做的是为新 block 的 metadata 创建一个位置,并为所需的大小创建一个位置。我哪里做错了?

最佳答案

添加行

#include <unistd.h>

在文件“mymalloc.c”的顶部,以便声明该函数

关于c - 函数 sbrk( ) 的隐式声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47966708/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com