簡體   English   中英

函數的隱式聲明sbrk()

[英]Implicit Declaration of Function sbrk( )

我正在嘗試創建自己的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;
    }
}

sbrk(sizeof(tmp)); mymalloc.c一部分中,我得到了"Implicit declaration of function sbrk()" 我想要做的是為新塊的metadata創建一個位置,並為所需大小創建一個位置。 我在哪里做錯了?

添加行

#include <unistd.h>

在文件“ mymalloc.c”的頂部,以便聲明該函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM