Arraygroesse zur Laufzeit festlegen
-
Hallo,
ich moechte gerne die Groesse meines Arrays dynamisch zur Laufzeit festlegen.
Fuer ein 1D-Array funktioniert es folgendermassen:
int size = 10; double *fieldpointer = new double[size]; delete []fieldpointer;Ich brauche es aber fuer folgendes 2D-Array:
double field[size][4];Wie laesst sich das in diesem Fall realisieren?
Danke.
-
#include <vector> using namespace std; int main() { unsigned int size = 117; // erzeugt einen Vektor aus 117 Vektoren der Länge 4 vector<vector<double> > v( size, vector<double>( 4 ) ); v[4][2] = 1337; }
-
Genauso:
double (*fieldpointer)[4] = new double[size][4];Wenn die Klammern verwirren, kann ein typedef helfen:
typedef double elem_type[4]; elem_type* fieldpointer = new elem_type[size];
-
Danke,
koennt ihr mir jetzt noch erklaeren, wie das delete im Falle von camper's zweiter Loesung aussehen muss?
-
delete[] fieldpointer;
-
Ah ok, daran lag's.
Danke euch fuer die schnelle und kompetente Hilfe!