c - 从 C 函数返回 STR 的问题

标签 c function return

您好,很抱歉我英语说得不好。

我知道这是重复的,但我有一个问题,而且我从未找到问题的答案。

每当我通过 GCC 编译此代码时都会显示此错误: 代码:

const char* myFunction()
{
    static char array[] = "my string";
    return array;
}
char a[101];
a=myFunction();

错误:

StackOverFlow.c: In function ‘main’:
StackOverFlow.c:51:2: error: assignment to expression with array type
   16 | a=myFunction();
      |  ^

当我直接在 printf 函数中使用函数的返回值时,不会出错。

printf ("%s", myFunction());

我不知道这是什么问题。 抱歉英语不好。

最佳答案

这是因为,在 C 中,这与将 array 的指针分配给 a 相同,但您已经“初始化”了 a >.

我不知道你想实现什么目的,但如果你想复制字符串,请使用

strcpy(a, myFunction());

或者,如果您想要指针,请尝试

const char *a;
a=myFunction(); //If you try using printf with a it will work.

关于c - 从 C 函数返回 STR 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72436185/

相关文章:

c++ - 安全地返回指向本地对象成员的指针

java - 无法从读取标准输入流的方法返回 main()

c - 在 C 中查找数组中的 n 个重复数字

c - 在空指针上调用 free() 时发生段错误

javascript - 在 JavaScript/jQuery 中多次调用带有参数的函数的简写?

javascript - jQuery : return this

c - 如何在根级别在 C 中声明结构?

c - 强制 printf 使用两个字符

Javascript函数从另一个函数记录到控制台

javascript - 如何使用 ReactJS 使用 props 调用另一个组件中的函数?