Übergebe ich ein Array an eine Funktion, dann verschwindet der Inhalt des Arrays nach dem Ende der Unterfunktion.
Die Unterfunktion ist so kurz wie möglich gehalten. Nur ein Array annehmen und es als Rückgabe-Wert liefern.
Das zurückgegebene Array ist dann auch da, aber das übergebene ist plötzlich leer...
Code
' XProfan X3.1
' 3 dyn. Arrays
Declare long arr_1[], arr_2[], arr_3[]
cls
' Übergabe und Rückgabe eines Arrays
' (was damit angestellt wird, ist hier unwichtig)
Proc test
parameters long arr[]
return arr[]
endproc
' erzeuge Werte im Array 1
arr_1[] = 1,4,17,4,9,8,3,4,17
' kopiere Array
arr_2[] = arr_1[]
Print "\n-Array 1"
whileloop 0, sizeof(arr_1[]) - 1
print &loop,arr_1[&loop]
endwhile
Print "- *"
Print "\n-Array 2 (wurde aus Array 1 erstellt)"
whileloop 0, sizeof(arr_2[]) - 1
print &loop,arr_2[&loop]
endwhile
Print "- *"
waitinput
' erstelle Array 3 (Daten aus Unterprogramm)
arr_3[] = test( arr_1[] )
Print "\n-Array 3 (wurde aus Unterprogramm geladen)"
whileloop 0, sizeof(arr_3[]) - 1
print &loop,arr_3[&loop]
endwhile
Print "- *"
Print "\n-Array 1 (---Nanu---)"
whileloop 0, sizeof(arr_1[]) - 1
print &loop,arr_1[&loop]
endwhile
Print "- *"
waitend
Alles anzeigen