Liste simple liée – Impossible d’accéder aux nœuds

J’essaie de construire une simple liste chaînée, mais une erreur de compilation me dit que le nœud de la liste chaînée auquel j’essaie d’accéder ne contient pas le champ que j’attends. Voici les méthodes de ma liste chaînée:

typedef struct TinCan { int label; } TinCan; typedef struct LinkedListNode { TinCan *data; struct LinkedListNode *next; } LinkedListNode; typedef struct LinkedList { LinkedListNode *head; } LinkedList; LinkedList* createList() /*creates empty linked list*/ { LinkedList* myList; myList = (LinkedList*)malloc(sizeof(LinkedList)); myList->head = NULL; } 

Je malloc un struct et l’envoie à la liste comme suit:

 LinkedList* canQueue=createList(); TinCan* testCan = (TinCan*) malloc(sizeof(TinCan)); testProc->pid=69; insertLast(canQueue, testCan); void insertLast(LinkedList* list, ProcessActivity *newData) { int ii = 1; LinkedListNode* newNode = (LinkedListNode*)malloc(sizeof(LinkedListNode)); newNode->data = newData; //check if queue empty if(list->head == NULL) { list->head = newNode; newNode->next=NULL; } else { LinkedListNode* current = list->head; while (current->next != NULL) { current = current->next; } current->next = newNode; printf("%d", ii); ii++; } } 

Et puis j’essaye d’accéder au noeud comme ceci:

 testLinkedList(cpuQueue); void testLinkedList(LinkedList* list) { int count = 1; LinkedListNode* current = list->head; while (current != NULL) { printf("%d: Label is is %d", count, current->data->label); current = current->next; count++; } } 

L’erreur de compilation apparaît pour la dernière méthode: “LinkedListNode” n’a pas de membre nommé “label”. Je ne vois pas où je me suis trompé. Est-ce que quelqu’un peut identifier un problème avec le code?

TinCan n’a pas de pid de champ

Peut être:

 testProc->label=69; 

au lieu de

 testProc->pid=69; 
 LinkedList* createList() /*creates empty linked list*/ { LinkedList* myList; myList = (LinkedList*)malloc(sizeof(LinkedList)); myList->head = NULL; 

-> retourne ma liste;

 }