Was ist daran falshc?
-
Hallo!
Ich hab ein Problem:
Hier erst mal nen bissel Code:class A { // Soll ein Array mit Zeigern auf b-objekte sein B** arB; void SetzeBs(B* b, int Anz); }; void A::SetzeBs(B* b, int Anz) { // gespeichert werden sollen Die Zeiger auf die b-Objekte for (int i = 0; i < Anz; i++) arB[i] = &(b[i]); //<- da kommt c000005-Fehler }
Was kann ich da machen?
-
wo reservirst du speicher für arB?
-
Ich ähm... setze den Zeiger im Konstruktor auf NULL ...
Da sit klar, dass das nciht geht...
Aber ich weiß auch nicht, wie ich es sonst machen soll. Estwa mit new?
Aber welchen Datentyp soll ich da nehmen? Es sind ja nur Zeiger auf Objekte und nciht die Objekte selber...Jetzt weiß ich wenigstens wodran es liegt
-
natürlich mit new !
-
void A::SetzeBs(B* b, int Anz) { delete arB; arB = new B *[Anz]; // gespeichert werden sollen Die Zeiger auf die b-Objekte for (int i = 0; i < Anz; i++) arB[i] = &(b[i]); //<- da kommt c000005-Fehler }
und aufpassen, dass arB am anfang 0 bzw. NULL ist
-
Danke, jetzt hab ichs hingekriegt.