Am Donnerstag, 10. Oktober 2002 14:38 schrieb Christian Weickhmann:
Hallo Michael!
[...]
Sieht folgendermaßen aus:
Klasse sm_schueler speichert die Daten einer Person (eines Schülers) und stellt Funktionen zu deren Manipulation bereit. Will ich jetzt ein Array von solchen Objekten erzeugen, kann es dann der Grund für dieses SIGSEGV sein, dass ich folgendes gemacht habe:
sm_schueler *s[100]; // um 100 Elemente von sm_schueler zu initialisieren...
Du initialisiert hier aber nichts, legst vielmehr 100 Zeiger vom Typ sm_schueler an, die irgendwo ins Nirwana zeigen.
dann der Aufruf:
s[0]->setName("EinName");
Ist das so korrekt oder muss ich s[0] vorher noch initialisieren? Wenn ja, wie?
s[0] ist kein Objekt, sondern nur ein Zeiger -> 'new' verwenden und später den 'delete' nicht vergessen, oder direkt 100 Objekte anlegen: sm_schueler s[100]. Zweiteres ist aber sehr unschön.
Danke, Christian
hth holger