首页 > 代码库 > xlC_r对c_str的处理
xlC_r对c_str的处理
在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]$ ./testHello[tortoise@sea temp]$
getString()返回的是一个临时对象,但是c_str()返回的指针指向的内容,在这个临时对象销毁之后是否还应该存在呢?
xlC_r对c_str的处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。