码迷,mamicode.com
首页 > 其他好文 > 详细

xlC_r对c_str的处理

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

标签:style   blog   color   io   os   ar   sp   div   on   

在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的处理

标签:style   blog   color   io   os   ar   sp   div   on   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!