Цитата(Сергей Борщ @ Apr 30 2015, 10:54)

То есть под command вы отвели место ровно в один символ - символ конца строки.
А теперь вылезли за пределы command и пошли портить соседние данные.
Возможно есть и другие причины, но сначала надо устранить эту.
Исправил char *command=""; на char *command; не помогло
char_idx я обнуляю в начале и потом он обнуляется на каждом разделительном чаре - в данном случае пробел.
Цитата(psL @ Apr 30 2015, 11:08)

Может проще парсить команду при помощи strtok в массив указателей?
http://www.cplusplus.com/reference/cstring/strtok/я пробовал так
Код
void Split(char *str, char *com, char arg[4][20])
{
uint32_t arg_idx = 0;
char * pch;
pch = strtok (str," ");
strncpy(com,pch,strlen(pch));
while (pch != NULL)
{
pch = strtok (NULL, " ");
strncpy(arg[arg_idx++],pch,strlen(pch));
}
}
тот же результат