Ваша проблема вращается вокруг вашего аргумента.
char* string2char(String command){
// create a new string that's a copy of the thing you pass in, and call it command
if (command.length() != 0) {
char *p = const_cast<char*>(command.c_str());
// get the const char* that this string contains.
// It's valid only while the string command does; and is invalidated on changing the string.
return p; /// and destroy command - making p invalid
}
}
Есть 2 способа решить эту проблему.Первый и самый сложный, это передать команду по ссылке.Таким образом, const String& command
и затем работа с этим.
Альтернативой, которая намного проще, является полное удаление вашей функции;наберите char*
const char*
и просто наберите c_str()
в строке;т.е.
String string1 = "Bob";
const char *string1Char = string1.c_str();