如何从函数返回 char 数组?

新手上路,请多包涵

我尝试了以下方法:

 char[10] testfunc()
{
    char[10] str;

    return str;
}

原文由 Datoxalas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

最好作为输出参数:

 void testfunc(char* outStr){
  char str[10];
  for(int i=0; i < 10; ++i){
    outStr[i] = str[i];
  }
}

调用

int main(){
  char myStr[10];
  testfunc(myStr);
  // myStr is now filled
}

原文由 Xeo 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 c++17,您可以使用下一个代码:

 auto testfunc() {
    union {
        char str[14];
    } res = { .str = "Hello, World!" };
    return res;
}

然后用你的字符串作为

const auto str = testfunc();
std::cout << str.str;

原文由 magrif 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题