mehrdimensionale arrays
-
Hallo!
Würde gerne ein mehrdimensionales array in c++ erstellen (pseudocode):
myarray = new int[x][y][4];Aber ich bekomme es nicht hin. wäre für ein paar tipps dankbar ;).
-
Hallo,
int x = 10, y=20, z=30; /* evtl. viel Quelltext */ int array[x][y][z];Ich hoffe das hilft...
Gruss
Tobi
-
Hallo,
dein Pseudocode geht fast
:int x = 3, y = 4, z = 5; int arr[x][y][z];Ist halt nicht dynamisch allokiert.
Wenn du's dynamisch haben willst, schau entweder in die FAQ des C++ Forums, oder lies dir die letzten paar Beiträge des C Forums mit "malloc" im Betreff durch, da hat c.rackwitz ausführlich erklärt, wie das geht.
MfG
GPC
-
ja, das problem ist nur, dass ich für x,y keine konstanten werte habe.
habe aber mittlerweile schon eine lösung entwickelt:GLubyte ** m_pData = new GLubyte*[m_width]; for(int i=0; i < m_width; i++) { m_pData[i] = new GLubyte[m_height]; }
-
Im Übrigen hat C++ Variable Length Arrays (VLA), dann müssen die Werte nicht konstant sein.
-
kannst du mal ein beispiel geben, wie das geht?
-
pixsta schrieb:
kannst du mal ein beispiel geben, wie das geht?
Tobis oder GPCs Code benutzen diese VLAs.

-
also bei mir geht das so leider nicht, da x,y,z constant sein müssen (lt. compilerfehlermeldung).
-
oha, mein g++ meckert nicht

Na ja, du hast ja die (funktionierende) dynamische Lösung.
-
George_ schrieb:
Im Übrigen hat C++ Variable Length Arrays (VLA), dann müssen die Werte nicht konstant sein.
Irrtum. C99 hat VLAs. Standard-C++ bisher nicht. Da ist natürlich std::vector ein naheliegender Ersatz.