gpt4 book ai didi

c - 从函数返回字符串(c语言)

转载 作者:行者123 更新时间:2023-11-30 20:57:26 26 4
gpt4 key购买 nike

我尝试以几种方式从函数返回字符串,但没有成功。每次我都会遇到同样的错误。感谢您的帮助。代码:

strcpy(temp, get_name());
printf("%s\n", temp);
scanf("%d", &i);
}
free(name_list);/*free the allocation of memory*/
return 0;

}

char *get_name()


{
int i=0;
char the_chosen_name[MAX_STRING_SIZE];
int rand_name = rand() % NUMBER_OF_STRING;
while (name_list[rand_name][i] != '\0')
the_chosen_name[i] = name_list[rand_name][i];
the_chosen_name[i] = '\0';
//strcpy(the_chosen_name, name_list[rand_name]);
return the_chosen_name;

}

option 1

option 2

编辑:用另一种方式: option3 WITHOUT A MORE VAR

name_list是一个全局字符串数组

谢谢

最佳答案

您是否将函数原型(prototype)声明为:

int get_name();

如果是这样,请将其更改为

char* get_name();

你还有另一个问题:您的程序返回一个本地数组。

使用类似的东西

void get_name(char *the_chosen_name){
strcpy(the_chosen_name, name_list[rand() % NUMBER_OF_STRING]);
}

或者在使用后使用mallocfree进行分配。

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

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