Я пытаюсь понять так называемый связанный список в c с помощью struct-nodes. Я хочу использовать один и тот же указатель через код, но при выполнении этого цикла for цикл печатает последний символ. Думаю, я понимаю, почему - вероятно, потому, что указатель указывает на второй и последний узел в программе.Использование того же указателя в связанном списке
Программа помещает два символа в последовательные узлы - буквы «h» и «e». И цель состоит в том, чтобы напечатать эти символы.
Итак, вопрос: как мне вернуться к первому узлу с помощью этого указателя? Единственный ответ для создания двух указателей - то есть одного указателя, называемого, например, startpointer и другого указателя, называемого nextpointer? Или я могу каким-то образом использовать один и тот же указатель, чтобы получить код?
спасибо!
#include <stdio.h>
#include <stdlib.h>
struct listNode {
char c[2];
struct listNode *ptrNextNode;
};
typedef struct listNode ListNode;
typedef ListNode *ListNodePtr;
int main(void) {
ListNode list_node;
ListNodePtr list_node_ptr;
list_node_ptr = malloc(sizeof(list_node));
strcpy(list_node_ptr->c, "h");
list_node_ptr = list_node_ptr->ptrNextNode;
list_node_ptr = malloc(sizeof(list_node));
strcpy(list_node_ptr->c, "e");
int i;
for (i = 0; i < 2; i++) {
printf("%s", list_node_ptr->c);
}
return EXIT_SUCCESS;
}
Вы хотите просмотреть список в * обоих направлениях? Или только один? –
Я думаю в одном направлении. Мне нужно создать программу, которая реализует FIFO. Это всего лишь тестовый код для изучения итерации через узлы. – user2991252