Für new einen Zeiger auf Zeiger??
-
Hi
Ich lege ein Array mittels new an. Jetzt stürtzt es immer ab wenn ich die Daten löschen will. Ich erstelle die Daten nicht direct im Array
int *a[100];
void main(){
a[0] = new int;
}Sondern ich übergebe in die Funktion einen Anderen Zeiger den Ich so erstellt habe.
int *a[100];
void func(int* b){
a[0] = b;
}
void funcloeschen(){
delete a[0];
}int main(){
int *c = new int;
func(c);
funcloeschen();
.
.
.
}Das müsste doch so gehen. Oder muss ich immer einen Zeiger auf einen Zeiger übergeben damit das geht???
-
c[0] ist ein Pointer auf ein int, aber kein Pointer auf nen Pointer auf ein int.
-
Das Problem ist das er bei mir ohne sichtlichen Grund beim Löschen von einen Objekt abstürtzt.
Meine Frage war eigendlich ob ich einem Anderen Zeiger mit new erstellen kann und dann der Richtigen stelle im Array den Zeiger Zuordne. Das Problem daran ist halt das das er mir immer dabei abstürzt
-
du sagst, du legst ein array mittels new an.
Wo bitte schön?
-
Das Oben ist nur ein Beispielcode. Wo ich halt nur ein Array element auf einen Zeiger setzte den ich vorher mit new erstellt habe.
-
Verstehe ich das richtig:
int *a[100]; void func(int* b){ a[0] = b; } void funcloeschen(){ delete a[0]; } int main () { func (new int); }
Ich würd mal sagen, dass das was du da machst zwar funktinieren sollte, aber irgendwie ist das nicht unbdingt ein tolles Design.
Ein globale feld von Zeigern. Eine Funktion, die dem ersten element des Feldes einen Wert zuweist. Eine zweite, die delete auf das erste Element anwendet. Was, wenn jamand sowas macht:
int main () { int x; func (&x); }
schon ist dein delete nicht mehr erlaubt. Erzähl doch mal wofür du das brauchst und möglicherweise kennt hier jemand ne bessere Lösung.
-
ich denke, er will nur ein beispiel machen... so nen code macht ja niemand (in echt)
-
Genau