如何从函数返回char数组?
|
我尝试了以下方法:
char[10] testfunc()
{
char[10] str;
return str;
}
没有找到相关结果
已邀请:
6 个回复
骂陋冠
用
济畦刨
与
相同。实际上,您正在返回一个指针。现在,指针指向一个变量(
),该变量在退出函数后立即销毁,因此指针指向...没有任何内容! 通常在C中,在这种情况下,您会显式分配内存,函数结束时不会销毁内存:
请注意!现在,ѭ5指向的内存永远不会被破坏。这被称为“内存泄漏”。完成后,请确保将内存“ 8”:
翱抹村
。
量华
当然,如果您要返回的是C形式的数组,则不是std ::或boost ::或其他东西。 如评论部分所述: 记住要从调用方释放内存。
骨酚柯
函数不能返回普通的
(或任何其他数组)。
掀辟髓观粟
一种解决方法是创建要在函数外部或要在其中使用的变量,然后将其作为参数传递并操纵函数,例如:
c ++ 11解决方案,使用std :: move(ch)将左值转换为右值
或c ++ 11中的此选项: