【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一样的错误
猜测与变量的生存周期、内存管理相关
待解答