Попытка создать единый связанный список, используемый для хранения значений. Использование ранга в качестве глобального заполнителя, но с проблемой пытается распечатать значение каждый раз, когда он увеличивается.Printf из объединенного списка
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
typedef struct Skill
{
int rank;
struct node *nextSkill;
}node;
node * addSkills(node * head);
node * createNode(node * new);
int rank = 0;
int main(void)
{
int x;
node * head = NULL;
for (x = 0; x < 2; x ++)
{
head = addSkills(head);
rank++;
}
}
node * addSkills(node * head)
{
node * newSkill = createNode(head);
head = newSkill;
return head;
}
node * createNode(node * new)
{
node * newNode = calloc(1,sizeof(node));
if(newNode == NULL)
{
printf("Memory Allocation Error\n");
exit(2);
}
newNode->rank = rank;
newNode->nextSkill = new;
return newNode;
}
void traverse(node * head)
{
node * conductor = head;
while(conductor != NULL)
{
printf("%d", conductor->rank);
conductor = conductor->nextSkill;
}
}
Не уверен, что мой подход к созданию связанного списка неверен, но я не могу понять почему?
Просьба уточнить, в чем проблема, какой результат вы получаете и какой результат вы ожидаете, спасибо – dom0
Проблема в том, что оператор printf в функции перемещения пропускается. Я ожидаю, что он будет печатать 0, затем 1. Я пытаюсь создать 2 узла с рангами 0, а затем 1. – choczy
Подсказка: вы можете отредактировать свой вопрос, чтобы добавить дополнительную информацию. – dom0