问题描述
- c++函数返回值是数组问题
-
比如现在要求定义一个函数fun(),在主函数调用时直接用fun();就能输出在fun函数里定义好的一个字符串,那要fun函数的返回值怎么返回才行,为什么我返回指针但打印出来却不是正确结果?求大神解释
解决方案
一般来说,出于内存管理的需要,让主程序来分配内存,传指针。比如scanf函数,就是通过这个方式输入值。
比如
void getstr(char * buffer)
{
char str[] = "hello world";
strcpy(buffer, str);
}
int main()
{
char a[100];
getstr(a);
printf("%s", a);
}
解决方案二:
返回char * 或者String
解决方案三:
你可能返回的是局部变量的指针,当局部执行结束后该变量就会销毁了,这样结果就不正确了
解决方案四:
不要返回一个局部变量的地址
解决方案五:
[转载]函数返回值为数组以及数组作为参数传递的问题
C++中函数返回值能否是数组?
函数返回值为数组
解决方案六:
楼主要不贴一下代码?
要注意的地方是:不要返回一个局部变量的地址
时间: 2024-11-01 22:13:22