在 C 中的单独函数中初始化指针

2024-01-03

我需要做一件简单的事情,我曾经在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(使用前将#替换为@)

在 C 中的单独函数中初始化指针 的相关文章

随机推荐