Dynamisch alloziertes Array aus double[8]
-
Hallo!
Ich möchte Datensätze zu je 8 doubles in einem Array abspeichern das mit Zeigern erst bei Laufzeit alloziert wird.
Ich habe versuch mit mich in das Theme einzulesen, aber soweit gehen die Einführungen nicht.
Ich habe es versuch mit
double (*a)[8]; //Pointer auf ein Array mit 8-doubles a = new double[8][1000];//Fehler: 'double (*)[1000]' kann nicht in 'double (*)[8]' konvertiert werdenIch habe einfach versucht die Technik von einfachen Variablen auf Arrays zu übertragen, aber so geht es jedenfalls nicht...
Aller Anfang ist schwer

Danke!
stefffi
-
Ich habs mir nochmal durch den Kopf gehen lassen.
a = new double[8][1000];
ist ja genau falschrum. Mit
a = new double[1000][8];
Frisst es der Compiler.
Aber macht es jetzt auch was ich will?
-
Wenn einen die Syntax zu sehr verwirrt halt einfach typedef nehmen:
typedef double Datensatz[8]; Datensatz* array = new Datensatz[1234]; Datensatz* p = &array[500]; // 501. Datensatz p[3] = 0; // 4. Feld array[123][1] = 42; // 124. Datensatz, 2. Felduswusf.
Oder du machst dir einfach ein "struct Datensatz", das ist dann noch einfacher zu durchblicken.
-
struct ist ne sehr gute Idee! Danke!
-
hustbaer hat einen Zeiger erfunden mit den man eine oder zwei Dimensionen ansprechen kann!

hustbaer schrieb:
typedef double Datensatz[8]; Datensatz* array = new Datensatz[1234]; Datensatz* p = &array[500]; // 501. Datensatz p[3] = 0; // 4. Feld //???????????????????? array[123][1] = 42; // 124. Datensatz, 2. Feld
-
@balduin
Oh Mann, ja, hab den * vergessen.(*p)[3] = 0; // 4. Feld