array in C überschreiben

#2620222
Lesenswert?

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.
Persönliche Seite #2630275
Lesenswert?

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)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren