Wie kann ich die verketten von zwei arrays in C?
Wie füge ich zwei arrays erhalten Sie ein array, das die Elemente des ursprünglichen arrays?
- Ja... Da beide Antworten scheinen zu reagieren, um die "Verkettung" interpretation, und die OP noch nicht wieder zu klären, ich habe es bearbeitet die Frage, um dies zu reflektieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Arrays in C sind einfach ein zusammenhängender Speicherbereich, mit einem Zeiger auf den start*. So verschmelzen Sie beinhaltet:
sizeof
jedes element)malloc
) ein neues array C mit der Größe der A + B.memcpy
) der Speicher von A nach C,free
) der Speicher von A und B.Beachten Sie, dass dies eine teure operation, aber dies ist die grundlegende Theorie. Wenn Sie eine Bibliothek benutzen, das bietet einige Abstraktion, könnten Sie besser dran. Wenn A und B sind komplizierter dann ein einfaches array (z.B. sortiert arrays), die Sie benötigen, zu tun smarter kopieren Sie dann die Schritte 3 und 4 (siehe: wie führe ich zwei arrays mit unterschiedlichen Werten in einem array).
int a[10]
bekomme ich einen zusammenhängenden Bereich im Speicher mit 10int
im es und keine Zeiger zu löschen.a
ist ein array. Wenn die array-Typ zerfällt, um die Zeiger-Typ, der resultierende Zeiger ist nur ein Zwischenprodukt temporären Wert, hat nichts zu tun mita
. Wnat den post oben Staaten, ist falsch, es sei denn, es spricht speziell übermalloc
ed-arrays.