C++Q

Posted 料峭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++Q相关的知识,希望对你有一定的参考价值。

//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的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段01

C语言代码片段

c_cpp Atlas300代码片段

c_cpp Robolution基本代码片段

[linux][c/c++]代码片段02

iphone / Objective c的最佳代码片段网站是啥[重复]