各种功能的内存分配?

时间:2016-05-01 18:36:16

标签: c pointers malloc

我正在创建两个不同的函数,这两个函数都需要使用指针。

所以我需要在输入指针值的函数中使用malloc,然后能够在另一个函数中对已分配指针的值进行排序(该部分有时可以工作,但总是导致程序崩溃)。

如果我在main函数中使用malloc,我可以在我的两个用户自定义函数中轻松使用指针,但就像我提到的那样,我试图在我制作的函数中使用malloc,并且make它适用于其他功能。

所以我的问题是,这可能吗?另外,我不想在全球范围内想要malloc(如果可能的话)。

1 个答案:

答案 0 :(得分:0)

没有代码,我无法提供太多帮助,但在具有malloc的函数中,只需使该函数返回指针即可。您也可以让该函数获取指针指针并像这样分配它。

方式1

void* f1()
{
    return malloc(szData);
}

void f2(void* ptr)
{
    // do stuff with pointer
}

int main()
{
    void* ptr = NULL;
    ptr = f1();
    f2(ptr);
    free(ptr);
}

方式2

void f1(void** ptr)
{
    *ptr = malloc(szData);
}

void f2(void* ptr)
{
    // do stuff with pointer
}

int main()
{
    void* ptr = NULL;
    f1(&ptr);
    f2(ptr);
    free(ptr);
}

有很多不同的方法可以做到这一点。我希望这两个例子足以让你解决问题。