FlyingCode

导航

 
#include <iostream>
#include <string>
#include <memory>
using namespace std;

const char* string2constchar(string s){
    shared_ptr<string> tmp (new string(s));
    return tmp->c_str();
}

int main()
{
    string s = "demo";

    char *_c = new char[s.size() + 1];
    copy(s.begin(), s.end(), _c);
    _c[s.size()] = '\0';

    const char* c = string2constchar(s);
    std::cout << c << std::endl;
    std::cout << _c << std::endl;
    s = "test";
    std::cout << c << std::endl;
    std::cout << _c << std::endl;

    delete _c;
    return 0;
}

 

posted on 2018-03-06 16:54  hhbeast  阅读(257)  评论(0)    收藏  举报