Arrays in C
annA
- sonstiges
0 Wolfram Hüttermann0 annA
0 Martin0 annA
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 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
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
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
Hi Martin,
das ist ja schade.. naja, leider muß ich in C programmieren
Viele Grüße
annA