zoukankan      html  css  js  c++  java
  • 【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一样的错误

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

    待解答

  • 相关阅读:
    抽象工厂模式
    外观模式
    策略模式
    状态模式
    观察者模式
    装饰者模式
    模板方法模式
    适配器模式
    中介者模式
    组合模式
  • 原文地址:https://www.cnblogs.com/Chilly2015/p/5645293.html
Copyright © 2011-2022 走看看