Programmieren - alles kontrollieren 4.939 Themen, 20.671 Beiträge

Java-Frage Array, Übergabe in "Funktionen"

PingOfDeath / 5 Antworten / Flachansicht Nickles

Folgendes Problem:

Mein Programm sieht so aus (sehr grob ^^):

x(INT_Array);
y(INT_Array);

static void x(int [] INT_Array)
static void y(int [] INT_Array)

Ich übergebe also ein Array mit 4 Werten an Funktionen welche mir etwas ausrechnen - sie geben nur etwas aus nichts zurück (void).
Wenn ich jetzt vor und nach dem Aufruf von "x" mir "INT_Array[0]" ausgeben lasse kommt jedesmal etwas anderes raus --> somit arbeitet "y" mit falschen Werten!

Was mache ich da falsch) Warum ändern sich die Werte im Array welches ich immer übergeben möchte?

Gruß, PingOfDeath

bei Antwort benachrichtigen
mr.escape PingOfDeath „ kopie des array-objekts, d.h. der referenz In der Funktion x wird das Array...“
Optionen
Wie muss ich es denn umschreiben das ich wirklich ein komplett neues Array erhalte welches nicht mehr im Bezug auf das zu übergebende Array steht?
Du musst ein "deep-copy" erzeugen. Z.b.:
static void x(int [] INT_Array0){
  int[] INT_Array=INT_Array0.clone();
  ...


mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen