Получаю "undefined", хотя в справке "не 0" я ожидаю какое нибудь число.
Код:
EnableExplicit
Structure nxy
n.i
x.i
y.i
EndStructure
Global cw = 2
Global ch = 2
Global x, y
Global Dim nxy.nxy(cw, ch)
Global Dim nxyOld.nxy(cw, ch)
For x = 1 To cw
For y = 1 To ch
nxyOld(x, y)\x = 2
nxyOld(x, y)\y = 2
nxyOld(x, y)\n = 2
Next
Next
; For x = 1 To cw
; For y = 1 To ch
; nxy(x, y)\x = 1
; nxy(x, y)\y = 1
; nxy(x, y)\n = 1
; Next
; Next
Debug CopyArray(nxyOld() , nxy()) ; undefined
For x = 1 To cw
For y = 1 To ch
Debug nxy(x, y)\x
Debug nxy(x, y)\y
Debug nxy(x, y)\n
Next
NextИ что самое интересное, если я в одном массиве изменю значение на 0, оно почему то становится 0 в обоих массивах, вот демонстрация ошибки:
Код:
EnableExplicit
Structure nxy
n.i
x.i
y.i
EndStructure
Global cw = 2
Global ch = 2
Global x, y
Global Dim nxy.nxy(cw, ch)
Global Dim nxyOld.nxy(cw, ch)
For x = 1 To cw
For y = 1 To ch
nxyOld(x, y)\x = 1
nxyOld(x, y)\y = 1
nxyOld(x, y)\n = 1
Next
Next
For x = 1 To cw
For y = 1 To ch
nxy(x, y)\x = 1
nxy(x, y)\y = 1
nxy(x, y)\n = 1
Next
Next
Debug CopyArray(nxyOld() , nxy()) ; undefined
nxy(1, 1)\n = 0
For x = 1 To cw
For y = 1 To ch
If nxy(x, y)\n = 0
Debug Str(nxy(x, y)\n) + "=" + Str(nxyOld(x, y)\n)
EndIf
Next
NextКстати, долго не думая просто сделал индивидуальную функцию не проверяя размерности.
Код:
Procedure CopyArray1(Array a.nxy(2), Array b.nxy(2))
Protected x, y
; Size1 = ArraySize(a(), 1)
; Size2 = ArraySize(a(), 2)
For x = 1 To cw
For y = 1 To ch
b(x,y)\x = a(x,y)\x
b(x,y)\y = a(x,y)\y
b(x,y)\n = a(x,y)\n
Next
Next
EndProcedure
Отредактировано AZJIO (20.10.2023 14:46:33)