[C/C++] wie deklariert man ein array?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von .x-tra, 22. März 2009 .

Schlagworte:
  1. 22. März 2009
    AW: wie deklariert man ein array?

    ich würde gern eine array von werten 0-255 also int* Arr[255] abfragen in einer for next schleife und ein anderes array mit dessen werten füllen.

    wie müßte das aussehen?
    hab schon gesucht, aber nix gefunden, was so richtig passt.
    bin c++ noob, brauch es aber.
     
  2. 22. März 2009
    AW: wie deklariert man ein array?

    int* ist ein Zeiger...von daher brauchst du dafür ein normales Array.

    Code:
    int werte1[256];
    int werte2[256];
    
    // werte1 mit Zeug füllen füllen
    ....
    
    // umfüllen
    for(int i=0; i < 10; i++) 
    {
     werte2[i] = werte1[i];
    }
    
    
    Wenn du meinst, dass du einen int* Zeiger (im Bsp. werte1 genannt) hast, der auf gültige Werte zeigt, macht man das so:

    Code:
    int werte2[256];
    
    // umfüllen
    for(int i=0; i < 10; i++) 
    {
     werte2[i] = *(werte1+i);
    }
    
    
     
  3. 22. März 2009
    AW: wie deklariert man ein array?

    ja also das eine array ist mit werten gefüllt.
    und dann gibts jeweils noch eine structur.

    heißt es dann

    tip.werte2 = *(typ.werte1+i);
     
  4. 22. März 2009
    AW: wie deklariert man ein array?

    Du meinst, dass der Pointer auf eine Struktur zeigt?, also z.B.
    Code:
    struct blub
    {
     int a, b;
    };
    
    blub* werte1[...];
    
    Es müsste meine ich dann so heißen:

    werte2.a = (*(werte1+i)).a;
     
  5. 22. März 2009
    AW: wie deklariert man ein array?

    eigentlich gibts ein
    Code:
    struct blub
    {
    int* wert[256];
    };
    
    struct blab
    {
    int* wert[256];
    };
    for(int i=0; i < 10; i++) 
    {
     blab.werte[i] = blub*(werte+i);
    }
    
    so in der art meine ich
     
  6. 22. März 2009
    AW: wie deklariert man ein array?

    Ah, ok...ich entdecke den Sinn eines struct mit nur einer Variable Inhalt zwar nicht, aber ok.

    In dem Fall müsste s folgendermaßen heißen:
    Code:
    struct blub
    {
    int* wert[256];
    };
    
    struct blab
    {
    int* wert[256];
    };
    for(int i=0; i < 256; i++) 
    {
     *(blab.wert[i]) = *(blub.wert[i]);
    }
    
     
  7. 23. März 2009
    AW: wie deklariert man ein array?

    Hallo!
    Vielleicht bist du ein wenig von diesen kleinen '*' Sternchen verwirrt. Ich wollte dich nur kurz aufklären, da ihr hier ueber 2 verschiedene Dinge redet.

    Mit einem Sternchen wird immer ein Pointer (Zeiger) deklariert. ein Zeiger enthält keinen konkreten Wert, sondern nur eine Speicher-Adresse, an der möglichweise ein Wert zu finden ist (muss aber nicht). wenn man also sowas wie "int* ai[10]" schreibt, ist das ein int-Zeiger-Array und kein Integer-Array (das ist ein Unterschied!). normale Integer-Arrays werden einfach mit "int ai[10]" deklariert. Hierbei ist interessant, das dieses Array auch wiederum als Zeiger behandelt werden kann. "ai" ist naemlich eigentlich ein Zeiger auf das erste Element im Array. mit *ai kannst du also das erste Element dereferenzieren. und genauso funktioniert ein Array auch. Es wird nur ein Zeiger auf das erste Element gespeichert, weil man weiß, dass bei einem Array alle Elemente im Speicher nebeneinander liegen. Um an die anderen Elemente zu kommen checkt der Compiler einfach die Byte-Laenge von einem Arrayeintrag (bei int sind es z.B. oft 4 Byte) und geht genauso viele Bytes im Speicher weiter, bis er beim gewuenschten Eintrag ist (das ist auch der Grund warum man immer aufpassen muss, dass der Index nicht zu gross wird, da man sonst ungehindert auf nicht definierten Speicher zugreifen kann).

    hoffe das hat dir beim verstehen von arrays etwas geholfen. Bei Fragen darfst du mir gerne schreiben...

    mfg
    pacman
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.