Witam, mam taki krótki kod i próbuje zrozumieć wstawianie elementów do listy, w tym przypadku na początek, ale nie mogę sobie z tym poradzić. Proszę o małą podpowiedź :) Przede wszystkim chciałbym w statyczny sposób wstawić element "nowy" na początek listy, a druga sprawa to przy każdej kompilacji wyświetla mi inną wartość , czasem poprawną a czasem nie.
// dodawanie wyrazów do listy
#include <stdio.h>
struct entry {
int value;
struct entry *valuePtr;
} n1, n2, n3, n4, nowy, *ptr = &n1;
int main()
{
void insertEntry( struct entry haslo, struct entry *wsk);
n1.value = 100;
n1.valuePtr = &n2;
n2.value = 200;
n2.valuePtr = &n3;
n3.value = 300;
n3.valuePtr = &n4;
n4.value = 400;
n4.valuePtr = (struct entry *) 0; // koniec listy - pusty wskaźnik
nowy.value = 369;
nowy.valuePtr = NULL;
insertEntry(nowy, 0);
do {
printf("%i\n", ptr->value);
ptr = ptr->valuePtr;
}while(ptr != 0);
}
void insertEntry( struct entry haslo, struct entry *wsk)
{
haslo.valuePtr = ptr->valuePtr;
ptr->valuePtr = &haslo;
}