Ich bins wiedereinmal mit einigen Fragen. Hab mich durch des Thema verkettete Listen gearbeitet. Dabei ist auch ein Code entstanden der funktioniert. Aber ich will den Code auch verstehen. Und genau da habe ich einige Probleme. Hier mal der komplette Code (im Prinzip aus verschiedenen Tutorials und Bücher zusammengeflickt

Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
struct struktur
{
int zahl;
struct struktur *next;
};
struct struktur *first;
struct struktur *next = NULL;
void datenErfassen ();
void strukturAnhaengen (int);
void strukturAusgeben ();
//--------------------------------------------------
int main ()
{
int i = 0;
for (i = 1; i < 3; i++)
{
datenErfassen (i);
}
strukturAusgeben ();
return 0;
}
//------------------------------------------------
void datenErfassen (int wert)
{
strukturAnhaengen (wert);
return;
}
//------------------------------------------------
void strukturAnhaengen(int wert)
{
struct struktur *hilfszeiger;
if (first == NULL)
{
first = malloc(sizeof(*first));
first -> zahl = wert;
first -> next = NULL;
}
else
{
hilfszeiger = first;
while (hilfszeiger -> next != NULL)
{
hilfszeiger = hilfszeiger -> next;
}
hilfszeiger -> next = malloc(sizeof(*first));
hilfszeiger = hilfszeiger -> next;
hilfszeiger -> zahl = wert;
hilfszeiger -> next = NULL;
}
return;
}
//--------------------------------------------------
void strukturAusgeben ()
{
struct struktur *lesen;
lesen = first;
while (lesen != NULL)
{
printf("\n Inhalt von Struktur = %d\n",lesen -> zahl);
lesen = lesen -> next;
}
return;
}
In der Funktion strukturAnhaengen gehen meine Probleme los.
Code: Alles auswählen
while (hilfszeiger -> next != NULL)
{
hilfszeiger = hilfszeiger -> next;
}
Code: Alles auswählen
if (first == NULL)
Code: Alles auswählen
hilfszeiger = first;
Noch ganz allgemein verhalten sich Zeiger des Typs struct anderst als zeiger des Typ int?
Danke schon im Voraus für die Geduld
ufor