Я пытаюсь создать отдельно связанный список. Я создал пять узлов и инициализировал их целым числом. Но когда я печатаю Связанный список, я ничего не получаю.Отображение одиночно связанного списка
typedef struct node
{
int value;
struct node* nextPtr;
}node;
node *nodePtr;
node *head;
void initializeLinkedList()
{
static unsigned int i;
nodePtr=(node*)malloc(sizeof(node));
i=0;
nodePtr->nextPtr=(node*)malloc(sizeof(node));
nodePtr->value=i;
head=nodePtr;
for(i=1;i<5;i++)
{
nodePtr->nextPtr=(node*)malloc(sizeof(node));
nodePtr->value=i;
}
nodePtr->nextPtr=NULL;
}
void printLinkedList()
{
static unsigned int i;
i=0;
nodePtr=head;
while(nodePtr->nextPtr!=NULL)
{
printf("Value of ptr is %p \n",nodePtr->nextPtr);
printf("Value is %d \n",nodePtr->value);
}
}
Я думаю, что не правильно настроил указатели.
[Не кастовал возвращаемое значение 'malloc()'] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc). Также, пожалуйста, используйте пробелы и отступы правильно. – 2013-02-11 21:11:44
Вы правы, что ваша инициализация неверна. Вы просто перезаписываете первый узел снова и снова. –
Вы забыли о nodePtr = nodePtr-> nextPtr; ? –