是否可以将 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(使用前将#替换为@)