annA: Arrays in C

Hallo zusammen,

ich möchte gerne einem Array die Werte anderer Arrays geben.
Beispiel:

const int a1[]  = { 1, 2 };
const int a2[]  = { 2, 3};
const int a3[]  = { a1, a2};

in Array a3 soll dann also 1,2,2,3 oder 1,2,3 stehen.
Die Reihenfolge ist egal, auch ob die Werte dann doppelt
auftauchen.

Hoffe es kann mir jemand einen Tipp geben wie und ob das geht :o)

Viele Grüße
annA

  1. Hallo zusammen,

    ich möchte gerne einem Array die Werte anderer Arrays geben.
    Beispiel:

    const int a1[]  = { 1, 2 };
    const int a2[]  = { 2, 3};
    const int a3[]  = { a1, a2};

    in Array a3 soll dann also 1,2,2,3 oder 1,2,3 stehen.
    Die Reihenfolge ist egal, auch ob die Werte dann doppelt
    auftauchen.

    Hoffe es kann mir jemand einen Tipp geben wie und ob das geht :o)

    Viele Grüße
    annA

    Hallo Anna,

    es geht mit Zeigern.

    Grüße,

    Wolfram

    1. Hi Wolfram,

      leider bekomme ich das nicht hin...
      entweder bekomme ich einen "init. makes integer from pointer without
      a cast" oder "initializer element ist not constant"
      Pointer sind nicht so meine Freunde ;o)

      Gruß
      annA

  2. Hall annA,

    ich glaube, so einfach wie du dir das vorstellst, geht's in C/C++ nicht. Du kannst Arrays nicht einfach "mischen".
    Wenn z.B. die Arrays a[] und b[] gleich groß sind (gleich viel Speicherplatz belegen), kannst du mit
     memcpy(b, a, sizeof(a));
    die Anweisung b = a; nachbilden, die in C so direkt nicht möglich ist. Für kompliziertere Aufgabenstellungen, so wie du sie hier schilderst, musst du wohl jedes Arrayelement einzeln hin- und herkopieren.

    Übrigens könnte das, was du beschreibst

    const int a3[]  = { a1, a2 };
    in Array a3 soll dann also 1,2,2,3 [...] stehen.

    in C++ (und nur da) sogar funktionieren, ich bin mir da nicht ganz sicher - aber auf jeden Fall nicht als reguläre Zuweisung, sondern nur als Initialisierung bei der Deklaration.

    Grüße aus dem Schwäbischen,

    Martin

    --
    Wissen erwirbt man, indem man das Kleingedruckte sorgfältig liest.
    Erfahrung bekommt man, indem man es nicht tut.
    1. Hi Martin,

      das ist ja schade.. naja, leider muß ich in C programmieren

      Viele Grüße
      annA