[求助]关于return返回值问题
char *test ()
{
char ch[]="abcd";
return ch; //这样对吗?可以返回吗?
} //请问return可以返回哪些东东啊?请帮我详细讲解一下.谢谢各位!
[此贴子已经被作者于2006-9-6 12:00:11编辑过]
const char *test ()
{
return \"abcd\"; //存储地址不是栈,函数结束,地址内容不变。
}
char *test ()
{
char ch[]=\"abcd\";
return ch; //返回局部变量,那快内存在块结束后系统会回收回
//去的,那里就不是你应该访问的地方了
}
或许你也可以:
char *test ()
{
char *ch=new char[strlen("abcd")+1];
strcpy(ch,"abcd");
return ch;
}