Hmm, irgendwie krieg' ichs nicht hin
Ich Poste Euch mal meinen Code :
Also: hier sind die Strukte :
Code:
struct Sektor ;
struct SektorList ;
typedef struct Sektor *SektorPtr ;
typedef struct SektorList *SektorListPtr ;
struct Sektor
{
unsigned int SektorID ;
SektorPtr Next ;
} ;
struct SektorList
{
SektorPtr Start, End, Cursor ;
} ;
So, und hier die Implementierung einiger Funktionen :
Code:
void SektorAppend /* Haengt ein Element ans Ende der Liste an */
(
SektorListPtr List
)
{
SektorPtr NewNode = malloc(sizeof(*List)) ;
if(!NewNode)
{
printf("FEHLER : Kann kein Element in die Liste Einfuegen \n") ;
printf("Programm wird jetzt Abgebrochen \n") ;
exit(1) ;
}
NewNode->Next = NULL ;
/* Ich glaube, in der IF-Abfrage liegt der Fehler */
if(List->End != NULL) /* Noch Kein Element in der Liste => Erstes Element Erzeugen */
{
NewNode->SektorID = 0 ;
List->Start = NewNode ;
List->End = NewNode ;
}
else
{
NewNode->SektorID = (List->End->SektorID) + 1 ;
List->End->Next = NewNode ;
}
List->Cursor = NewNode ;
List->End = NewNode ;
}
/*********************
SektorNext
*********************/
void SektorNext
(
SektorListPtr List
)
{
List->Cursor = List->Cursor->Next ;
}
/*********************
SektorGotoStart
*********************/
void SektorGotoStart
(
SektorListPtr List
)
{
List->Cursor = List->Start ;
}
Wenn ich das im main-File teste, z.B. mit :
Code:
SektorListPtr Liste ;
SektorAppend(&Liste) ;
SektorAppend(&Liste) ;
SektorGotoStart(&Liste) ;
printf("Ausgabe : ") ;
printf("Listenelement : %i \n", (&Liste->Cursor->SektorID)) ;
SektorNext(&Liste) ;
printf("Listenelement : %i \n", &Liste->Cursor->SektorID) ;
gibt's Speicherzugriffsfehler ohne Ende.......
Ich glaube, der Test, ob schon Elemente in der Liste enthalten sind, ergibt immer TRUE, aber ich hab' keine Ahnung, wie ich das sonst testen soll...
Was läuft hier Falsch ????
Neugierige Grüsse
DanDanger
Lesezeichen