首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sbrk( )函数的隐式声明

sbrk( )函数的隐式声明
EN

Stack Overflow用户
提问于 2017-12-25 15:42:34
回答 1查看 2K关注 0票数 1

我正在尝试创建我自己的malloc函数,但我还没有完成。以下是我的代码的相关部分:

mymalloc.h

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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()"。我想做的是为新块的metadata创建一个位置,同时也为所需的大小创建一个位置。我哪里做错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-25 15:45:16

添加这行

代码语言:javascript
复制
#include <unistd.h>

在文件'mymalloc.c‘的顶部,以便声明函数

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47966708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档