将 std::string 传递给函数 f(**char)

2024-04-13

是否可以将 std::string 的指针传递给需要 **char 的函数?该函数需要一个 **char 才能向其写入值。

目前我正在做以下事情:

char *s1;
f(&s1);
std::string s2 = s1;

难道就没有更短的路吗?很明显, s2.c_str() 不起作用,因为它返回const *char.


这是处理此类功能的适当方法。你不能通过std::string直接因为,虽然你可以convert它到一个 C 字符串,它在内存中的布局不同,因此被调用的函数不知道将其结果放在哪里。

但是,如果可能的话,您应该重写该函数,以便它需要std::string& or std::string *作为一个论点。

(另外,请确保您free() or delete[]C 字符串(如果适用)。任何内容请参阅文档f()是为了确定您是否需要这样做。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 std::string 传递给函数 f(**char) 的相关文章

随机推荐