c - 关于 C 中的返回类型

标签 c

我是 C 编程的初学者,我编写了一小段代码,如下所示:

char* aFunction() {
    char aName[100] = "abc";
    printf ("%s", aName);
    return aName;
}


int main (int argc, char** argv) {
  char* w = aFunction();
  printf ("%s", w);
}

当我编译并运行时,我得到输出“abc(null)”,但我期待的是“abcabc”。有人可以向我解释为什么 w 变量打印 null 吗?我该如何解决这个问题,以便我可以在 main 中调用 printf 并获得“abc”?换句话说,将 aName 的值传递给 w 变量的正确方法是什么?

最佳答案

您不能在函数中返回 aName,因为它是一个局部变量,从 aFunction 返回后会丢失

解决此问题的一种快速方法是像这样声明 aName static

static char aName[100] = "abc";

关于c - 关于 C 中的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33169790/

相关文章:

c - fscanf 段错误读入数组

c - 工作 TicTacTo CheckWin 功能?

c - 下面的代码有什么问题?预期 X 由线程 Func 1 修改,随后 X 由线程 Func 2 修改

c - 如何知道路径,错误和警告存储在eclipse中

c++ - 变量赋值和逗号运算符

c - pthread 条件不满足

c - "Pointer from integer without cast"打开文件时出现警告。

c - 使用 ANSI C 进行 SHA256 哈希处理的进度条

ios - 是否可以将旧的 xcode 代码更新为最新的 xcode?

C:传递二维整数数组