У меня есть строка с именем buf, и я хочу скопировать первые 3 символа в отдельную строку, а затем символы в позиции 4-6 также в отдельную строку.
buf = "V01clsxxxxxxxxxx"
char ID [3] = "";
char CMD [3] = "";
memcpy(ID, buf, 3*sizeof(char));
memcpy(CMD, buf + 3, 3*sizeof(char));
Когда я вывожу ID, он говорит «V01», как и ожидалось.
Когда я вывожу CMD, он говорит «clsV01», когда я ожидаю, что он скажет «cls».Я новичок в C и удивляюсь, где моя ошибка в мышлении и почему это ведет себя так:
Я уже решил проблему, выполнив это
char * buff = (char*)buf;
char * ID = malloc(3 * sizeof(char));
char * CMD = malloc(3 * sizeof(char));
memcpy(ID, buff, 3*sizeof(char));
memcpy(CMD, buff + 3, 3*sizeof(char));
Но я все равно хотел бызнать основной механизм, который его вызывает.
С уважением