从函数返回指针

时间:2017-09-30 14:34:21

标签: c pointers

我是C中的新手并且试图将指针从我的函数返回到指针变量并且让“[Warning]赋值从整数中生成指针而没有强制转换”不知道为什么编译器将它定义为int。 也不能在main之前声明我的函数,它会抛出这个“对free_block'的未定义引用”。

#include <stdio.h>
#include <stdlib.h>
    struct block{
    int num;
};

int main(int argc, char *argv[]) {
    struct block *b;
    b = free_block();

    struct block *free_block(){
        struct block *b = NULL;
        return b;
    }
    return 0;
}

谢谢

是的,我的错我不太了解c语法,也不知道嵌套函数,soz。 但在这种情况下可能出错: 我试图在不使用malloc或calloc函数的情况下创建自己的内存分配器。在我的代码中,我在pointer = free_space_get(size);的行上有相同的警告,这里我没有嵌套的func(),我的方法在main()之前定义,但仍然不知道我是否必须声明我的函数或者没有考虑到给我的答案,只要在main()之前定义了函数,它就能正常工作。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct header{
        size_t size;
        struct header *next;
        unsigned int free;
    };
void *m_alloc(size_t  size){
        size_t total_size;
        void *block;
        struct header *pointer;
        if(!size)  
            return NULL;
        pointer = free_space_get(size);
        if(pointer){
            pointer->free = 0;
            return (void*)(pointer + 1);
        }

    }
struct header *get_free_space(size_t size){
        struct header *b = NULL;
        return b;
    }

int main() {
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您的代码可以重写为

}).then((returnArray) => {