Как говорит @kaylum, причина того, что вы получаете ошибку, заключается в том, что вы меняете значение указателя word
. Когда вы перераспределяете память для выделенного массива блока памяти и изменяете размер этого блока памяти, realloc()
меняет размер и возвращает указатель, который указывает на первый блок памяти этого выделенного массива. В этом случае, если вы хотите изменить размер памяти word
, попробуйте использовать индекс для доступа к вновь добавленному блоку памяти.
void copy(char *command) {// copy
char *word = NULL;
printf("%s\n",command);
int size = 1,index=0;``
if (*command == '/') {
command++;
while (*command != '/') {
word = (char*)realloc(word, size * sizeof(char));
word[index] = *command;
size++;
command++;
index++;
}
printf("%s\n", word);
free(word);
}
}