gpt4 book ai didi

c - 在c中将字符串数组传递出函数

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:54 25 4
gpt4 key购买 nike

我有一个用于构建字符串数组的函数。在函数内部,我可以不用担心打印数组,但是程序从被调用函数返回,数组 (arr) 保持为 NULL。如何从数组中获取数据?

谢谢。

main(){
char **arr = NULL;
funct(arr);
printf("%s\n", arr[2];
}

funct(char **arr){
arr = malloc(10*sizeof(char *));
arr[1...n] = calloc(SIZE, sizeof(char));
// Add data to array
}

最佳答案

我可以在您的代码中看到几个问题:

  1. printf("%s\n", arr[2]; 行中你忘记了结束 )
  2. main 函数的本地arr 变量从未被初始化。在 C 中,参数是按值传递的,这意味着您将 NULL 指针传递给您的函数,并且在该函数内部,本地指针 arr 被分配但不是其中之一主要函数。

解决方案是在 main 函数中分配数组,并将指向数组的指针和大小传递给填充它的函数:

main(){
char **arr = malloc(10*sizeof(char *));
funct(arr, 10);
printf("%s\n", arr[2]);
}

funct(char **arr, int size){
// Add data to array
arr[0] = "first data";
....
arr[size -1] = "last data";
}

关于c - 在c中将字符串数组传递出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22589661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com