ich programmiere ab und zu "Dinge" fuer mich die ich gerade brauche.
Und wenn ich etwas mit Objekten mache (was sehr oft der Fall ist) dann mach ich das meist so: (Pseudo-Code aus dem Kopf...)
Code: Alles auswählen
class objeKt
{
public:
void Mach_was();
private:
int iregendwas;
};
int objektmenge=0;
objeKt** objektliste = NULL;
void Neues_objekt()
{
objektmenge++;
objektliste = (objeKt**) realloc(objektliste , objektmenge * sizeof(objeKt*));
objektliste[objektmenge-1] = new objeKt();
}
for(int o=0;o<objektmenge;o++)
{
delete(objektliste[o]);
}
free(objektliste);
Allerdings lese ich immer wieder, "Man soll malloc, calloc, realloc und free nicht mit new und delete verwenden."
Warum nicht?
Und wie soll man es sonst machen, wenn vorher nicht bekannt ist wieviele Objekte es mal werden?
Mit new kann ich mir zwar Speicher allokieren aber danach die Groesse nicht mehr aendern.
Wie macht man es denn "richtig"?
Bzw. Was ist an "meinem" Code so falsch/gefaehrlich/unzureichend wasauchimmer...
Gruss,
heinz