Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Array in C++

Chakhi / 6 Antworten / Flachansicht Nickles

hallo Leute,
ich möchte ein Array erstellen damit ich einen Raster darstellen kann! und das mache ich wie folgt:

float grenzen[6];
float xkoord, ykoord;
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 akkumulator[xdim][ydim];

aber beim Kompilieren kommt immer die Fehlermeldung, dass für akkumulator[][] "konstante Ausdruck erwartet" ist und "error C2466: Reservierung eines Feldes der konstanten Groesse 0 nicht moeglich"

wie könnte ich das realisieren! warum werden xdim und ydim, die ich oben berechne nicht angenohmen!??

ich bedanke mich im Voraus....

Chrakhan

bei Antwort benachrichtigen
Chakhi mr.escape „Mehrdimensionales Array in C++ und kleine Korrektur“
Optionen

Hi..
ich habe jetzt so wie ich Euch verstanden habe, Eure Vorschläge in meine Funktion wie folgt eingebaut:

{
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

bei Antwort benachrichtigen