У меня есть назначение в классе «Операционные системы». Все в порядке с остальной частью моего кода, я скомпилирую его с помощью «gcc -o test test.c -Werror -Wall -pedantic -Wextra -Wfatal-errors », никаких ошибок или вообще ничего. Но когда я запускаю его, я получаю ошибку сегментации (ядро сбрасывается). Я положил некоторый printf на разных этапах программы, чтобы увидеть, в какой момент я получаю сообщение об ошибке (здесь возникает проблема). У меня нет вариантов на этом. Любая помощь приветствуется!Сбой сегментации (сбрасываемый сердечник)
Часть программы:
void inputToken(char *cmdInput)
{
int i;
int quit = 0;
char *token;
char *argList[] = {"\0", "\0", "\0", "\0", "\0", "\0", "\0"};
char *argv[] = {"&", "%"};
token = strtok(cmdInput, " ");
i = 0;
while(token != NULL && i<7)
{
argList[i] = token;
token = strtok(NULL, " ");
i++;
}
for(i=7; i>0; i++)
{
if(strcmp(argList[i], argv[0]) == 1) !!PROBLEM OCCURS HERE
{
<<SOME CODE>>
}
}
}
/*READING USER COMMAND*/
void usrInput()
{
int c;
int i=0;
char cmd[101];
while((c = getchar()) != EOF)
{
if(c == '\n')
break;
else if(i<100){
cmd[i]=c;
i++;
}
}
Спасибо заранее!
Подумайте о 'для (I = 7; я> 0; я ++) снова'. –
Скомпилируйте все предупреждения и отладочные данные 'gcc -Wall -g' и ** используйте отладчик **' gdb' !!! –