我需要做一件简单的事情,我曾经在 Java 中做过很多次,但我被困在 C 中(纯 C,而不是 C++)。情况是这样的:
int *a;
void initArray( int *arr )
{
arr = malloc( sizeof( int ) * SIZE );
}
int main()
{
initArray( a );
// a is NULL here! what to do?!
return 0;
}
我有一些“初始化”函数,它应该将给定的指针分配给一些已分配的数据(无关紧要)。我应该如何给出一个指向函数的指针,以便修改该指针,然后可以在代码中进一步使用(在该函数调用返回之后)?
最佳答案
你需要调整*a指针,这意味着你需要传递一个指向*a的指针。你这样做:
int *a;
void initArray( int **arr )
{
*arr = malloc( sizeof( int ) * SIZE );
}
int main()
{
initArray( &a );
return 0;
}
关于c - 在 C 中的单独函数中初始化指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2486235/