我正在创建两个不同的函数,这两个函数都需要使用指针。
因此,我需要在输入指针值的函数中使用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);
}
有很多不同的方法可以做到这一点。我希望这两个例子足以让你解决你的问题。