Guten morgen, ich habe ein kleines Problem, wo ich nicht genau weiß, wie ich das am einfachsten umsetzen kann (in C). ich habe ein array, wo einige Werte in einem anderen Array definiert werden. z.B. A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; B[] = {6, 5, 4}; jetzt möchte ich gerne A[3] A[4] A[5] mit B[] tauschen. sodass A[] = {1, 2, 3, 6, 5, 4, 7, 8, 9, 10}; herauskommt doch mit memcpy bekomme ich ja nur den Array von anfang an überschreiben. Gibt es auch eine Möglichkeit einen Wertebereich vorzugeben?
tauschen, heißt aber, dass danach in ? der alte Inhalt von ? stehen muss. und memcopy funktioniert natürlich auch nur, wenn es ein 1:1 tausch/copy ist und nicht nicht ein splice, wo ? Elemente in ? durch ? Elemente aus ? ersetzt werden
:
Bearbeitet durch User
Vlad T. schrieb: > tauschen, heißt aber, dass danach in ? der alte Inhalt von ? stehen > muss. Nein, heisst es nicht. Wenn ein Bauteil defekt ist, muss man es tauschen (umgangssprachlich). Das heisst aber nicht, dass das defekte Bauteil (A) danach in der Kiste mit den funktionierenden Teilen (B) landet. Was du da machst ist Wortklauberei und voellig unnoetig. Der TO hat mit einem Beispiel gezeigt, was er will.
A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; B[] = {6, 5, 4}; for (int i=3; i<=5; i++) { type h; h= B[i]; B[i] = A[i]; A[i]= h; }
Freiberufler schrieb: > A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; > B[] = {6, 5, 4}; > > for (int i=3; i<=5; i++) > { > type h; > h= B[i]; B[i] = A[i]; A[i]= h; > } Je nachdem, wie B genau angelegt wird, ist B[i] mit i>2 undefiniert, weil es außerhalb des Speicherbereichs für B liegt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.