在函数内建立的局部变量在函数结束后会被销毁,所以如何从函数返回函数内新建的char*是一个问题
看一个例子:
char* get_char_1(){string s = "abc";return (char*)s.c_str();
}int main(){char* temp = get_char_1();cout << temp;return 0;
}
此时什么也不输出
解决方法:在函数内新建一个static char数组,这样函数结束数组也不会被销毁
char* get_char_2(){string s = "abc";static char a[20];strcpy(a, s.c_str());return a;
}int main(){char* temp = get_char_2();cout << temp;return 0;
}