Wieso nicht einfach S_place place[24];!?
Habe ich auch erst überlegt! Aber wenn ers anders machen will warum nicht.
Wo wir grad dabei sind: Andere Möglichkeit:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
// Im Header
S_place* place;
// Beim initialisieren
place = new S_place()[24];
|
Wobei ich ihm dringend empfehlen würde einen Vector zu benutzen:
|
C-/C++-Quelltext
|
1
|
std::vector<S_place> place;
|
Ich habs jetzt so gemacht wie CeDoMain gesagt hat. Allerdings hab ichs ein bisschen abgeändert:
Sowas erzeugt ein Speicherleck, denn du reservierst für jeden Einzelfeldzeiger 24 Speicherplätze! Da hast du am Ende 24 x 24 angelegt, von denen du dann nur einen Bruchteil benutzt. Warum hast du meinen Vorschlag abgeändert? Hat der nicht funktioniert? Benutz anstatt
new lieber Dots Vorschlag oder direkt einen
std::vector!
Ansonsten schreib deinen Code da oben mal so:
|
C-/C++-Quelltext
|
1
2
3
4
|
for(int i = 0; i < 24; i++)
{
place[i] = new S_Place();
}
|
Und vergiss nicht am Ende allen Speicher mit
delete wieder freizugeben!