码迷,mamicode.com
首页 > 编程语言 > 详细

【C++Q】

时间:2016-07-06 00:02:22      阅读:252      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!