Anfänger und Listen
Verfasst: Mo Feb 17, 2014 1:51 am
Hallo zusammen
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
)
In der Funktion strukturAnhaengen gehen meine Probleme los.
wiso wird die while schleife nicht durchlaufen und welchen Zweck hat sie dann?
Wieso ist first NULL das wurde doch niergens zugewiesen, aber beim Programablauf wird dieser Programmteil durchlaufen.
Auch diese Zuweisung ist mir schleierhaft aber wenn ich sie weglasse gibt es eine Fehlermeldung ( segment default).
Noch ganz allgemein verhalten sich Zeiger des Typs struct anderst als zeiger des Typ int?
Danke schon im Voraus für die Geduld
ufor
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