我需要做一件简单的事情,我曾经在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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)