我尝试过以下几种方法:
char[10] testfunc()
{
char[10] str;
return str;
}
发布于 2011-04-14 16:36:53
最好作为输出参数:
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
}
发布于 2011-04-14 16:37:14
char*返回一个char数组,但是您编写的函数不起作用,因为您返回的是一个自动变量,该变量在函数退出时会消失。
使用类似如下的内容:
char *testfunc() {
char* arr = malloc(100);
strcpy(arr,"xxxx");
return arr;
}
当然,如果您返回的是C意义上的数组,而不是std::或boost::或其他类型的数组。
如注释部分所述:记得从调用者那里释放内存。
发布于 2011-04-14 16:35:56
由于您使用的是C++,因此可以使用std::string
。
https://stackoverflow.com/questions/5660527
复制相似问题