c-各种功能中的内存分配



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

因此,我需要在输入指针值的函数中使用malloc,然后能够在另一个函数中对分配的指针值进行排序(这部分有时有效,但总是会导致程序崩溃)。

如果我在主函数中使用malloc,我可以很容易地在两个用户制作的函数中使用指针,但正如我提到的,我正在尝试在我制作的函数中将malloc使用,并使其在其他函数中工作。

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

如果没有代码,我帮不了什么,但在具有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);
}

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

相关内容

  • 没有找到相关文章

最新更新