Я написал некоторый код, чтобы помочь мне уменьшить тире в моей программе для большего связанного списка, но когда я вызываю класс, мой код застревает в цикле делимминатора и не умирает.Я не могу даже убить его с помощью команды kill. Мне нужно открыть новый ssh-клиент
int deliminator(char word[], struct node *root){
struct node *start = (struct node*) malloc(sizeof(struct node));
struct node *trav = (struct node*) malloc(sizeof(struct node));
start->next= trav;
trav->prev = start;
char *token;
token = strtok(word,"-");
while(token){
/* this loop is broken */
printf("%s",token);
struct node *curr = (struct node*) malloc(sizeof(struct node));
strcpy(curr->set, token);
trav->next = curr;
curr->prev = trav;
trav = trav->next;
token = strtok(NULL,"-");
};
root->next = start;
return(0);
};
Также, когда я пытаюсь запустить strtok ненадлежащим образом, выполняя цикл с помощью token = strtok (token, "-");он застревает на первом жетоне.Кажется, я не могу найти проблему, мой друг предположил, что это связано с узлами связанного списка, но я удалил их, и у меня возникла та же проблема.
Я вызываю класс разделителя в этом фрагменте кода.
int main(int argc, char *argv[]){
struct node *root = (struct node*) malloc(sizeof(struct node));
struct node *trav = (struct node*) malloc(sizeof(struct node));
root->next = trav;
if(argc == 2){
/*only one giant string*/
deliminator(argv[1],root);
while(root->next!= NULL){
printf("%s",root->set);
};