首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从函数返回字符数组?

如何从函数返回字符数组?
EN

Stack Overflow用户
提问于 2011-04-14 16:33:14
回答 5查看 166.8K关注 0票数 40

我尝试过以下几种方法:

代码语言:javascript
复制
char[10] testfunc()
{
    char[10] str;

    return str;
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-14 16:36:53

最好作为输出参数:

代码语言:javascript
复制
void testfunc(char* outStr){
  char str[10];
  for(int i=0; i < 10; ++i){
    outStr[i] = str[i];
  }
}

使用调用

代码语言:javascript
复制
int main(){
  char myStr[10];
  testfunc(myStr);
  // myStr is now filled
}
票数 63
EN

Stack Overflow用户

发布于 2011-04-14 16:37:14

char*返回一个char数组,但是您编写的函数不起作用,因为您返回的是一个自动变量,该变量在函数退出时会消失。

使用类似如下的内容:

代码语言:javascript
复制
char *testfunc() {
    char* arr = malloc(100);
    strcpy(arr,"xxxx");
    return arr;
}

当然,如果您返回的是C意义上的数组,而不是std::或boost::或其他类型的数组。

如注释部分所述:记得从调用者那里释放内存。

票数 11
EN

Stack Overflow用户

发布于 2011-04-14 16:35:56

由于您使用的是C++,因此可以使用std::string

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5660527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档