char *commandstrings[MAXARGS];
commandstr = strtok(line,"|");
int i = 0;
while(commandstr != NULL){
commandstrings[i] = commandstr;
printf("%s \n",commandstr);
commandstr = strtok(NULL,"|");
i++;
}
printf("first parsing complete!");
Привет, ребята. Я пытаюсь разделить строку на различные подстроки с помощью strtok и хранить их в массиве строк, называемых «commandstrings».ошибка сегментации в этом маленьком фрагменте кода?
проблема заключается в том, что я получаю ошибку сегментации непосредственно перед достижением окончательного printf. должен я дать в качестве аргумента строку: "лол | OMG | BBQ"
программа печатает:
лол
OMG
BBQ
ошибки сегментации (ядро сбрасывали)
Что может быть проблема ? Я не думаю, что мне нужно подвергать вас, ребята, остальной частью кода, так как цикл «while» выполняется красиво, и ошибка возникает непосредственно перед тем, как покинуть cicle, поскольку последняя печать не отображается.
Спасибо!
Может быть, я слишком устал, но ошибка не является очевидным для меня на первый взгляд (кажется совсем по-одной ошибки, хотя). +1 для размещения соответствующей части кода после применения вычетов на основе логики. Редкая птица на SO в наши дни. – 2013-04-18 22:32:29
@Valiant Пожалуйста, опубликуйте полную программу. Вы уверены, что это сбой перед отпечатком отпечатка printf? – Mahesh
Как сказал бы Шерлок Холмс, если вы уничтожили весь код, и ваша программа все равно выйдет из строя, ваша ошибка будет в другом замке. Что такое 'line'? –