gpt4 book ai didi

c - 作为参数的指针为空但函数后指针不为空

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

你好,我的功能如下:

void enterString(char *string) {

string = (char*)malloc(15);

printf("Enter string: ");
scanf("%s",string); //don't care about length of string now
}

int main() {
char *my_string = NULL;
enterString(my_string);

printf("My string: %s\n",my_string); /* it's null but i want it to
show string i typed from
enterString */

return 0;
}

我想从 main 中的字符串上的函数显示字符串...我不知道你是否能理解我。谢谢:)

最佳答案

您正在按值传递字符串。您需要通过地址传递它:

void enterString(char **string) {

*string = (char*)malloc(15);

printf("Enter string: ");
scanf("%s",*string); //don't care about length of string now //you should!
}

int main() {
char *my_string = NULL;
enterString(&my_string);

printf("My string: %s\n",my_string);

free(my_string);

return 0;
}

关于c - 作为参数的指针为空但函数后指针不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23994665/

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