Hi! Am Sam, 2002-11-16 um 11.35 schrieb Bernhard Walle:
ich möchte in C++ mehrdimensionale Arrays dynamisch erzeugen (nach der Erzeugung bleibt die Größe unverändert) und zwar kein rechteckiges Array sondern mehr dreieckig.
Meinst Du, Dein Array soll etwa so aussehen (in 2D): usw. xxxx xxx xx x
int[][] array = new int [2][]; for (int i = 0; i < array.length; i++) array[i] = new int[i];
System.out.println(array[1][0]); // ergibt den Defaultwert 0
Sowas hätte ich jetzt auch gerne in C++. Wie macht man sowas?
Versuche mal folgendes: (dimY wäre nach Deinem Beispiel gleich 2, gibt in meinem kleinen Bild oben die Höhe an) int dimY = ... int** data; // Erzeugung von dimY Zeigern auf integer-Werte data = new( int* )[dimY]; for( int y = 0; y < dimY; y++ ) { // hier erzeugt man das Dreieck // dies ist effektiv ein 1-dim Array von integer-Werten int* temp = new( int )[y+1]; // hier könnte eine Schleife stehen, die temp mit Werten // belegt // Anhängen des Hilfszeigers data[y] = temp; } Mit dimY = 2 sollte das dann so aussehen: xx x Im Allgemeinen (wenn das ganze laufzeitunkritisch ist) hat Sebastian jedoch recht und das ganze löst sich einfacher mit geschachtelten STL-Vektoren. CU Martin