Hallo Marcus,
irgendwie scheint meine einfach verkettete Liste nicht richtig zu funktionieren. Ich verliere immer alle Elemente bis auf das neu Eingefügte und kann mir nicht erklären warum. was habe ich falsch gemacht?
du hast dich mit der Speicherverwaltung ins Knie geschossen.
void nameHinzufuegen() {
Person *neuePerson;
So, damit existiert erstmal nur ein Zeiger auf eine Person-Struktur. Er zeigt irgendwo ins Nirwana, jedoch nicht auf einen erlaubten Speicherbereich (das wäre höchstens Zufall).
Ich vermisse so etwas etwas wie neuePerson=malloc(sizeof(Person)).
strcpy(neuePerson->vorname, vn);
strcpy(neuePerson->nachname, nn);
Hier wird's schon gefährlich: Du schreibst in den Speicherbereich, auf den der nicht initialisierte Zeiger verweist.
aktuellePerson->next = neuePerson;
So, jetzt zeigt aktuellePerson->next ebenfalls auf den zufälligen Speicherbereich.
neuePerson->next = NULL;
Alles in allem: Dynamische Datenstrukturen sind 'ne feine Sache. Aber dann muss man bitte auch dafür sorgen, dass man für jedes Element den nötigen Speicher reserviert (in C mit der Standardfunktion malloc(), in C++ alternativ auch mit dem Operator new).
So long,
Martin
Paradox ist, wenn der Innenminister sich äußert und der Außenminister sich erinnert.