407 Stimmen

Kopie eines Arrays erstellen

Ich habe ein Array a die ständig aktualisiert wird. Sagen wir a = [1,2,3,4,5] . Ich muss ein exaktes Duplikat von a und nennen es b . Wenn a zu ändern wären [6,7,8,9,10] , b sollte noch sein [1,2,3,4,5] . Wie kann ich dies am besten tun? Ich habe versucht, eine for Schleifen wie:

for(int i=0; i<5; i++) {
    b[i]=a[i];
}

aber das scheint nicht richtig zu funktionieren. Bitte verwenden Sie keine fortgeschrittenen Begriffe wie "deep copy" usw., denn ich weiß nicht, was das bedeutet.

1voto

Ich hatte ein ähnliches Problem mit 2D-Arrays und endete hier. Ich habe das Hauptarray kopiert und die Werte der inneren Arrays geändert und war überrascht, als sich die Werte in beiden Kopien änderten. Im Grunde waren beide Kopien unabhängig, enthielten aber Verweise auf dieselben inneren Arrays, und ich musste ein Array von Kopien der inneren Arrays erstellen, um das zu bekommen, was ich wollte.

Dies wird manchmal auch als Deep Copy bezeichnet. Der gleiche Begriff "tiefe Kopie" kann auch eine völlig andere und wohl komplexere Bedeutung haben, was verwirrend sein kann, insbesondere für jemanden, der nicht weiß, warum sich seine kopierten Arrays nicht so verhalten, wie sie sollten. Es ist wahrscheinlich nicht das Problem des Auftraggebers, aber ich hoffe, es kann trotzdem hilfreich sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X