Я работаю над созданием оболочки, похожей на bash.Я сталкиваюсь с ошибкой при попытке получить аргументы, связанные с командой (т.е. ls -l).Я искал в Интернете и не нашел ничего полезного.
char *userInCopy;
char *ret;
userInCopy = (char*)calloc(1024, sizeof(char));
ret = (char*)calloc(64, sizeof(char));
strcpy(userInCopy, userIn);
int i = 0;
while((ret = strsep(&userInCopy, " "))){
*(args + i) = (char*)calloc(strlen(ret), sizeof(char));
strcpy((*(args+i)), ret);
i++;
ret = (char*) realloc(ret, (64)* sizeof(char));
}
Я получаю информацию от пользователя в char userIn, и она распределяется правильно.Затем я анализирую ввод, используя strsep, получая каждый аргумент отдельно.Я могу получить аргумент ls и -l, но затем, когда он переходит в realloc после -l, он выдает ошибку «realloc (): неверный указатель».Я забыл, почему это сработает в первый раз после получения аргумента ls, но не получится после получения аргумента -lЕсть предложения?