将指针指向指针作为函数参数传递

时间:2015-12-24 13:07:20

标签: c arrays function pointers multidimensional-array

有人能解释我如何使用另一个指针将2D数组字符串传递给函数吗?我想使用指针将数组传递给函数FILL。在该函数中,我想将字符串复制到数组中。

void FILL(char **array) {

    char buffer[20] = "Hi my name is John."

    array = (char**) malloc ( 1 * sizeof(char*));
    for ( i = 0; i < 1; i++ ) {
        array[i] = (char*) malloc ( 20 * sizeof(char*));
        strcpy(array[i],buffer);
    }

}


int main() 
{

 char **array = NULL;

 FILL(array);

 return 0;
}

1 个答案:

答案 0 :(得分:1)

只需使用指向char的三重指针(并享受称为three-star programmer):

void FILL(char ***array);

int main()
{
    char **array;

    FILL(&array);

    return 0;
}

或者,考虑在FILL中返回已分配的内存段,而不是传递指针:

char **FILL() {
    char **array = ...;

    ...

    return array;
}

int main()
{
    char **array = FILL();
    ...
}