2D Array will nicht
-
Auch für mich ist es irgendwann das erste Mal, dass ich in C++ einen 2D Array brauche. Aber leider will er nicht so wie ich es möchte:
Header:
private: double* m_dSumX;Cpp:
OnInitDialog... m_dSumX = new double[MEANVALUESIZE][XCHIPSIZE*2];Error:
error C2440: '=' : cannot convert from 'double (*)[128]' to 'double *'
Die 128 kommt von XCHIPSIZE=64. Was muss ich anders machen? Einen normalen Array definiere ich doch ähnlich, und das klappt.
-
müsste so gehen (schon ewig net mehr gemacht)
double** m_dSumX; m_dSumX = new double*[MEANVALUESIZE]; for(int i = 0; i < MEANVALUESIZE; ++i) m_dSumX[i] = new double[XCHIPSIZE*2];tipp:
benutzt lieber stl container
-
Da gibts doch was aus der FAQ
-
Danke, das hilft weiter
Noch eine Frage zum Array-delete. Wo muss das genau rein? In den Destruktor der Klasse?
-
Spätestens da mußt du den Speicher deiner Klasse ja wieder aufräumen.
-
Hmmmm, seitdem ich den 2D-Array drin hab, bekomme ich eine Exception beim Verlassen des Programms. Der Array ist in einer Nebenklasse, muss ich dieses "Objekt" beim Verlassen des Hauptprogramms explizit zerstören? Ich arbeite hier mit MFC und verlasse mich eigentlich darauf, dass diese Nebenklasse automatisch zerstört wird. Aber den neuen Destruktor in der Nebenklasse führt er jedenfalls nicht aus.
-
Hallo
Um das zu beantworten fehlt der relevante Code.
Wichtig ist, das du alles selber lsöchen must, was du auch selber anlegst. Und das du das auch in richtiger Reihenfolge machst, so das nicht nach dem Löschen eines Elementes von irgendwo noch einmal versucht wird darauf zuzugreifen.Benutzt also den Debugger und verfolge das beenden deines Programms bis zum Speicherfehler.
bis bald
akari