【问题标题】:Converting string to char pointer returns an empty string [duplicate]将字符串转换为char指针返回一个空字符串[重复]
【发布时间】:2013-08-03 09:31:43
【问题描述】:

我将 stringstream 的字符串转换为 char 指针,但它写入的是空字符串。 为什么会失败?

std::stringstream ss;
ss << "de12mu";
char* msg = (char*)ss.str().c_str();
std::cout << "msg: " << msg << " " << strlen(msg) << std::endl;

【问题讨论】:

标签: c++


【解决方案1】:

这是因为您对ss.str() 的调用会返回一个临时 字符串,然后当您获得指向该临时字符串的指针时,在语句完成后它将无效。

在临时字符串被销毁后使用该指针是未定义的行为

还要注意c_str 函数返回const char*

【讨论】:

    猜你喜欢
    • 2015-01-02
    • 2012-10-03
    • 2013-01-11
    • 2013-03-06
    • 1970-01-01
    • 2016-07-05
    • 2021-07-11
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多