gpt4 book ai didi

c - 如何在 C 中的不同函数之间传输文本?

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:24 25 4
gpt4 key购买 nike

我有两个 .c 文件,我想编译成可执行文件。刚开始学习 C,我发现要知道如何将文本作为参数在函数之间传输是很棘手的(我发现这在所有其他语言中都非常简单)。

这是两个文件:

程序.c

#include <stdio.h>
#include <string.h>

int main(){

char temp[40] = stringCall();
printf("%s",temp);

}

字符串返回.c

#include <stdio.h>
#include <string.h>

char[] stringCall(){

char toReturn[40] = "Hello, Stack Overflow!";
return toReturn;

}

我通常会遇到类似“分段失败(核心已转储)”之类的问题。我已经进行了大量的谷歌搜索,但令人惊讶的是我真的找不到解决方案,当然也没有简单的教程“这是如何在函数之间移动文本”。

任何帮助将不胜感激:)

最佳答案

char toReturn[40] = "Hello, Stack Overflow!";
return toReturn;

这是无效的,您正在返回一个自动数组,该数组在函数返回后超出范围 - 这会调用未定义的行为。尝试返回字符串文字本身(它在整个程序中都有效):

return "Hello, Stack Overflow!";

或者你的数组的动态副本:

char toReturn[40] = "Hello, Stack Overflow!";
return strdup(toReturn);

在后一种情况下,您需要free() 调用函数中的字符串。

关于c - 如何在 C 中的不同函数之间传输文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499425/

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