有人能解释我如何使用另一个指针将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;
}
答案 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();
...
}