首页 > 其他 > 详细

xlC_r对c_str的处理

时间:2014-10-27 12:10:18      阅读:247      评论:0      收藏:0      [点我收藏+]

在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()返回的指针指向的内容,在这个临时对象销毁之后是否还应该存在呢?

xlC_r对c_str的处理

原文:http://www.cnblogs.com/StupidTortoise/p/4053654.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!