Wie kann man ein bestehendes array in C überschreiben? Mit array1[]=array2[]; ist es nicht möglich. Vielen Dank!
Do Ma schrieb: > Wie kann man ein bestehendes array in C überschreiben? C Buch lesen. Arrays verhalten sich anders als andere Datentypen. > array1[]=array2[]; > > ist es nicht möglich. Schleife drüber legen oder memcpy benutzen. memcpy macht in den meisten Fällen auch nichts anderes als eine Schleife, kann aber systemspezifische Besonderheiten theoretisch ausnutzen, die den Vorgang bei manchen Basisdatentypen beschleunigen.
Durch Zuweisen der einzelnen Elemente. Eine direkte Arrayzuweisung existiert nicht. Alternativ lässt sich memcpy verwenden, wenn denn das Zielarray mindestens so groß wie das Quellarray ist.
array1 und array2 sind idealerweise nur 2 Zeiger bei denen der Compiler weiß welche Größe sie besitzen für die notwendige Zeigerarithmetik und das es sich um einen zusammenhängenden Speicher handelt. array1[]=array2[]; ist nicht möglich. Sollte es sich bei array1 um ein konstantes Array handeln und memcpy mal außen vorgelassen würde : int t; for (t=0;t<(sizeof(array1)/sizeof(array1[0]));t++) array1[t]=array2[t]; Vorausgesetzt ist natürlich hierbei, daß array1 die Daten von array2 größenmäßig aufnehmen kann. Es ist dem Compiler schlichtweg egal. (Bufferoverflow, wenns denn nicht so war)
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.