Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Array Prob

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.02.2006, 15:32 Uhr
Karldin Shinowa
Professional Noob


Wie intialisiert man ein Dreidimensionales oder zB ein 4 dimensionales??? die 2. Dimension is ja noch einfach:

C++:
int Feld[2][2]={{1,2},{3,4}}//-->Feld[0][0]==1,Feld[0][1]==2,Feld[1][0]==3,Feld[1][1]==4



und wie erzeuge ich ein mehrdimensionales dinamisches array????
und wie geht das bei mehreren dimensionen mit zeigerarithmetik???

mfg
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.02.2006, 17:08 Uhr
(un)wissender
Niveauwart


Drei Dimensionen geht so wie zwei, nur halt drei.
X-dimensional dynamisch ist ein ganz anderes Thema. std::vector ist da wohl besser.
Ansonsten musst du ziemlich rumfrickeln. Sowas wie in Java geht nicht, leider.


C++:
int feld[][] = new int[][] {...}; //Geht nicht!


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 07.02.2006 um 17:18 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.02.2006, 17:27 Uhr
(un)wissender
Niveauwart


Ok, damit das nicht ganz so arschig rüberkommt.


C++:
#include <iostream>
#include <string>

int main(){

    //3 Dim
    int Feld[2][2][2]={{{1,2},{3,4}},{{1,2},{3,4}}};
    
    //3 Dimdyn
    int *** Feldd = new int**[2];
    for(int i = 0; i < 2; i++)
    {
        Feldd[i] = new int*[2];
         for(int j = 0; j < 2; j++)
        {
            Feldd[i][j] = new int[2];
        }
    }
    //Zuweisen kannst dann so
    Feldd[1][1][0] = 3;
    
    //und löschen
    
    for(int i = 0; i < 2; i++)
    {
        
         for(int j = 0; j < 2; j++)
        {
            delete Feldd[i][j] ;
        }
        
        delete Feldd[i];
    }
    delete Feldd;    
}



Siehst schon ist frickelig. Kann man durchaus noch optimieren, aber das ist für Fortgeschrittene,


Bearbeitung:

Kann man auch schön als Klasse kapseln, mit Templates und so. Bestimmt hat boost schon sowas.


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 07.02.2006 um 17:29 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: