Konvertierung eines Zeigers auf den Anfang eines 1D Arrays in einen ***Zeiger
-
Ich habe das Problem, dass ich anstatt eines 3D-pointers nur ein normales Array erstellt habe.
Die Elemente werden Dabei der Reihenfolge nach mit folgender Regel abgespeichert.// x + y Dx + z Dx DyNun wollte ich einen Konvertierungsoperator überladen, der mir mein Array dann automatisch in einen ***Zeiger konvertiert.
Allerdings bin ich mir nich ganz sicher ob, ich gefahrlos konvertieren darf, oder dann beim Zugriff mit dem Indexoperator auf einzelne Elemente Fehler auftreten könnten.
-
Das geht gar nicht. So wie du auch keinen Zeiger auf ein 3D-Array in einen *** umwandeln kannst.
edit: Es sei denn per Operatorüberladung mit Proxyobjekten. Die Antwort oben bezieht sich auf die eingebauten Möglichkeiten.
-
double *** dreideezeiger = new double ** [Dz]; for (int i=0;i<Dz;++i) { dreideezeiger[i] = new double* [Dy]; for (int j=0;j<Dy;++j) { dreideezeiger[i][j] = eindeearray + j*Dy + i*Dz*Dy; } }meinst du sowas?
Edit: Man muss das ganze Gedöhns auch wieder freigeben da iss doch deine Variante viel besser! Ganz zu schweigen von dem zusätzlichen Speicheraufwand.