首页 > 编程语言 > 详细

【C++Q】

时间:2016-07-06 00:00:34      阅读:265      评论:0      收藏:0      [点我收藏+]
//c_str
const char* str2Cchar(string s){
    //const char* ss = s.c_str();  //出错,因为s会被析构,ss指向垃圾内容
    char c[20];
    strcpy_s(c, s.c_str());

    return c;
}

//atoi
int Cchar2int(const char* s){
    //char buffer[100];
    int n = atoi(s);
    return n;
}

int _tmain(int argc, _TCHAR* argv[])
{
    //string s = "123455";
    //const char* ss = str2Cchar(s);

    char s[] = "123455";
    const char* ss = s;

    cout << Cchar2int(ss) << endl;

    return 0;
}

main函数中被注释掉的部分,ss结果为constchar*类型,但是传参给Cchar2int就变成垃圾内容,cout结果为0

why?

状似与str2Cchar中直接c_str一样的错误

猜测与变量的生存周期、内存管理相关

待解答

【C++Q】

原文:http://www.cnblogs.com/Chilly2015/p/5645293.html

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