xlC_r对c_str的处理
时间:2014-10-27 12:10:46
收藏:0
阅读:177
在xlC_r下编译如下代码:
#include <iostream> static std::string s_strHello = "Hello"; std::string getString() { return s_strHello; } int main(void) { const char *szHello = getString().c_str(); printf("%s\n", szHello); return 0; }
编译运行结果如下:
[tortoise@sea temp]$ xlC_r -o test test.cpp [tortoise@sea temp]$ ./test [tortoise@sea temp]$
但是同样的代码在g++下却没有问题:
[tortoise@sea temp]$ g++ -o test test.cpp [tortoise@sea temp]$ ./test Hello [tortoise@sea temp]$
getString()返回的是一个临时对象,但是c_str()返回的指针指向的内容,在这个临时对象销毁之后是否还应该存在呢?
评论(0)