gpt4 book ai didi

c - 从函数返回一个字符串数组

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:48 26 4
gpt4 key购买 nike

我需要返回一个 char** 但当我尝试这样做时,编译器告诉我我想返回一个局部变量的地址。我怎样才能做到这一点?我知道我应该为这个变量分配空间,但是如何分配空间呢?这是我的代码,但是第二个 printf 没有出现并且该函数不返回任何内容:

char** parse_cmd(const char* cmdline) {
char** arguments = (char**)malloc(100);
int i;
int j=0, k=0;
printf("%s\n", cmdline);

for(i=0; i<100; i++) {
arguments[i] = malloc(100);
}

for(i = 0; i < strlen(cmdline); i ++) {
if(cmdline[i] != ' ') {
arguments[j][k] = cmdline[i];
k++;
} else {
arguments[j][k] = '\0';
j++;
k = 0;
}
}

printf("%s\n", arguments[1]);

return arguments;
}

最佳答案

您需要进行多次分配。第一个用于 char**,然后用于每个 char*。例如。像

  char **args = (char**)malloc(100);
int i;
for (i=0; i<100; i++)
args[i] = malloc(100);

// Rest of program

return args;

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

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