在c中返回一个数组

Kos*_*tas 4 c arrays return

我想知道是否有任何方法可以返回一个char数组.我试过像这样的"char [] fun()",但我收到了错误.

我不想要指针解决方案.谢谢!

小智 11

您可以通过将数组包装在结构中来返回数组:

struct S {
   char a[100];
};

struct S f() {
    struct S s;
    strcpy( s.a, "foobar" );
    return s;
}
Run Code Online (Sandbox Code Playgroud)

  • 好身手!尼尔 (2认同)
  • 你可以使用`typedef struct S {char a [100]} T;`然后代替`struct S`你可以写`T`. (2认同)

小智 5

数组不能通过C中的值传递或返回.

您需要接受指针和缓冲区的大小来存储结果,否则您将不得不返回不同的类型,例如指针.前者通常是首选,但并不总是适合.