c语言函数如何返回字符串,该函数又该如何调用呢

发布网友 发布时间:2022-04-22 10:39

我来回答

3个回答

热心网友 时间:2023-11-01 21:24

无法返回字符串,只能返回字符串的首地址。如:char *p = GetString(); 返回的字符串空间必须是开辟在堆上的,不能是栈,如果是栈当函数结束时,数据也会销毁的;追问那怎么样是开辟在堆上,怎么样是开辟在栈上呢

热心网友 时间:2023-11-01 21:24

局部变量都是在栈上,由编译器控制销毁,malloc在堆上,手动free(pointer)
定义一个指向字符的指针,然后char* string = GetString();用完free(string);这个指针在stack上,自动销毁。。

热心网友 时间:2023-11-01 21:25

可以返回string型,也可以定义个结构体(其字段为一个字符串)就可以返回了。追问c语言没有string,其实第一条回答挺好的,不过他还没继续回答我第二个问题

追答局部变量是栈上的,而malloc申请的空间上在堆上的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com