我正在创建两个不同的函数,这两个函数都需要使用指针。
所以我需要在输入指针值的函数中使用malloc,然后能够在另一个函数中对已分配指针的值进行排序(该部分有时可以工作,但总是导致程序崩溃)。
如果我在main函数中使用malloc,我可以在我的两个用户自定义函数中轻松使用指针,但就像我提到的那样,我试图在我制作的函数中使用malloc,并且make它适用于其他功能。
所以我的问题是,这可能吗?另外,我不想在全球范围内想要malloc(如果可能的话)。
答案 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);
}
有很多不同的方法可以做到这一点。我希望这两个例子足以让你解决问题。