【发布时间】:2012-04-01 11:25:03
【问题描述】:
我正在修改一个接受 const char* 并使用函数 ProcessString 的函数。 ProcessString 是一个函数,它需要一个以空字符结尾的字符缓冲区作为 char*。缓冲区中的字符可能会或可能不会被修改,如下面的函数签名所定义。为了“弥合差距”,我使用了一个临时的 std::string:
void ProcessString( char* str );
void SomeFunction( const char* str )
{
string temp(str);
ProcessString( &temp[0] );
}
我的主要问题是关于 std::string::operator[] 的保证以及上面 &temp[0] 返回的地址是否是一个可用的、以空值结尾的缓冲区作为 char*。其次,非常其次,有没有更好的方法来做到这一点?
我正在使用 C++03。
【问题讨论】:
标签: c++ stl operators stdstring c++03