Как остановить бесконечную итерацию, происходящую в следующей программе связанного списка ?
Вот код, который я создал для создания и печати связанного списка в c.я ввел данные от 1 до 5, и когда он начинает печатать числа, он продолжает печатать 5, пока я каким-то образом не завершу программу. Какова может быть возможная ошибка в написанном коде ?
#include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *link; }list; void createList(){ list *start=NULL; char ch; do{ list *ptr, *cpt; ptr=(list*)malloc(sizeof(list)); printf("Enter data\n"); scanf("%d",&ptr->data); ptr->link=NULL; if(start==NULL){ start=ptr; cpt=ptr; } else{ cpt->link=ptr; cpt=ptr; } printf("Do you want more : "); ch=getche(); printf("\n"); }while(ch!='n'); } void traverseNode(){ list *ptr, *start; ptr=start; while(ptr!=NULL){ printf("%d ",ptr->data); ptr->link=ptr; } } void main(){ createList(); traverseNode(); }
Что я уже пробовал:
Я попытался изменить функцию и поместить код в main, но все равно безрезультатно.
Попытался сделать функции типа int, но все равно застрял.
Mohibur Rashid
Ваша функция traverseNode должна была потерпеть неудачу. Вы объявили start без установки какого-либо значения.