gpt4 book ai didi

c - 如何从函数返回字符串数组

转载 作者:太空狗 更新时间:2023-10-29 16:51:57 32 4
gpt4 key购买 nike

char * myFunction () {

char sub_str[10][20];
return sub_str;

}

void main () {

char *str;
str = myFunction();

}

错误:从不兼容的指针类型返回

谢谢

最佳答案

C 中的字符串数组可以与 char**char*[] 一起使用。但是,您不能像在函数中那样返回存储在堆栈中的值。如果要返回字符串数组,则必须动态保留它:

char** myFunction() {
char ** sub_str = malloc(10 * sizeof(char*));
for (int i =0 ; i < 10; ++i)
sub_str[i] = malloc(20 * sizeof(char));
/* Fill the sub_str strings */
return sub_str;
}

然后main可以这样获取字符串数组:

char** str = myFunction();
printf("%s", str[0]); /* Prints the first string. */

编辑:由于我们分配了 sub_str,我们现在返回一个可以在 main 中访问的内存地址

关于c - 如何从函数返回字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4085372/

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