Mehrdimensinales Feld
-
Der Deklerationscode funktioniert danke, aber ich kann leider nicht auf ein Element zugreifen ich habe es schon so probiert aber ich glaube ich habe da einen prinzipiellen Denkfehler wenn mir da bitte auch noch mal wer helfen könnte.
Feld2D[2]->Add(5);
-
Zeig mal den ganzen Code, aus der Zeile kann man nicht viel erkennen.
Ich würde allerdings vermuten, dass du vergessen hast, dir mit new Speicher geben zu lassen.
-
Die Dekleration ist so wie du geschrieben hast:
typedef CArray <double,double> C1DArray; typedef CArray <C1DArray*, C1DArray*> C2DArray;C2DArray lineData;Das war alles in der Dokumentenklasse.
und jetzt der Aufruf:
pDoc->lineData[di]->Add(5);
-
Naja, du versuchst da grade Birnen statt Obstkörben zuzuweisen.

lineData nimmt nur Arrays an, keine Zahlen.Mach erst ein C1DArray mit new, fülle es und pack es dann in lineData.
PS: Nutzt du C# oder C++? Wir haben nämlich auch C++-code-Tags.
-
Sorry wegen den Tags.
Was ich nicht ganz verstehe ist, wenn ich das 1DArray in meinem Unterprogramm wo ich die Zuweisung mache mit new erstelle und das 1DArray dann dem 2Darray zuweise ist dann das 1DArry nicht weg wenn ich das Unterprogramm schließe????
-
Nein, es ist nicht weg, weil du es mit new erstellst.
Was du mit new erstellst, musst du auch selber mit delete wieder wegräumen.
-
Wann muss ich dann aber die 1DArray wegräumen??
-
Im Destruktor von C2DArray.

-
Ich glaube ich habe das jetzt verstanden.
meine Dekleration von dem 1DArray sieht so aus:
CArray <double, double> *feldp feldp = new CArray <double, double>;und so versuche ich eine Zuweisung:
feldp->Add(atof(pch));Mein Programm stürzt aber schon an bei new ab. Was mache ich da falsch??
und das 1DArray "weise" ich so dem 2DArray zu:
pDoc->lineData[line] = fieldp;
-
oder ist die Zuweisung falsch?

-
Danke habe den Fehler schon gefunden