【发布时间】:2010-03-20 01:30:58
【问题描述】:
我总是对从函数返回字符串文字或字符串感到困惑。有人告诉我可能是内存泄漏,因为你不知道什么时候会删除内存?
例如在下面的代码中,如何实现foo(),使代码的输出为“Hello World”?
void foo ( ) // you can add parameters here.
{
}
int main ()
{
char *c;
foo ( );
printf ("%s",c);
return 0;
}
另外,如果foo()的返回类型不是void,但是可以返回char*,应该是什么?
【问题讨论】:
-
您要求它返回
char*而不是char const*实际上迫使我们假设纯字符串文字是不够的,因此return "hello world";是一个无效的解决方案。你对 constness 有什么要求?
标签: c++ string literals return-type