Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Mehrdimensionales Array in C++

Chakhi / 5 Antworten / Flachansicht Nickles

Hi..

ich habe folgende Code und möchte ich damit erreichen, dass ich eine Ebene in Feldern unterteile! Ich habe gedacht, ich könnte das über ein (2D)Array realisieren und zwar so, dass ich die Felde auf die Ebene -mit der Länge und Breite von xdim und ydim- mit Raster 1mm einrichte!
und ich möchte auch, dass ich am Anfang die Felde mit dem WErt 0 initialisieren, so dass ich so was erhalte:
0 0.. 0
0......0
........
0......0

und hier ist mein Code, mit der Fehlermeldungen:


{
float grenzen[6];
int xdim,ydim;
int xmin ,xmax ,ymin ,ymax;



// geometrische Grenzen in x und y Richtung auslesen

polydata->GetBounds(grenzen); //(xmin,xmax, ymin,ymax, zmin,zmax).
xmin = grenzen[0] - 20;
xmax = grenzen[1] + 20;
ymin = grenzen[2] - 20;
ymax = grenzen[3] + 20;

// Akkumulator mit Raster 1mm für x-y Ebene einrichten
xdim = xmax - xmin;
ydim = ymax - ymin;


int *pAkkum = new int[xdim];
int **ppAkkum = &pAkkum;
int *pData = new int[xdim*ydim];
for ( int i = 0; i

//akkumulator auf 0 initialisieren
for (int x_index = 0; x_index {
for (int y_index = 0; y_index {
ppAkkum[x_index][y_index]=0;

}

}

delete[] pAkkum;
delete[] ppAkkum;
delete[] pData;


}

und jetzt wenn zum Funktionaufruf kommt, wird das Ausführen abgebrochen und kommt die Meldung:
"Benutzerdefinierter Haltepunkt aus der Quellcode aufgerufen bei 77f7f570"
und dann wird das Fenster mit dem Überschrift: " [Anhalten]-[Disassemblierung]" angezeigt.

was soll das alles! was soll ich da überprüfen?

Chakhi
p.s.: Code ist aus der Diskutionen vom vorherigen Posting (Array in C++ ) entstanden...

bei Antwort benachrichtigen
mr.escape Chakhi „Danke mr.escape, natürlich habe ich das was mir in der Diskussion gesagt wurde...“
Optionen

Tja, da hab ich mich von Dreamforger in die lemmingfalle locken lassen und habe ungeprüft behauptet, dass
int **ppAkkum = new *int[xdim];
richtig wäre.
Tatsächlich ist aber
int **ppAkkum = new int*[xdim];
richtig, also "int*" statt "*int". Damit werden auch die ganzen folgefehler ausbleiben.

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
lemming Dreamforger