Функцию ArrPtr тоже помните - которая на самом деле VarPtr переобъявленная?
Теперь запустите следующий код.
- Код: Выделить всё
Private Sub Form_Load()
Dim a(1 To 10) As Long
Debug.Print "Несколько подряд"
Debug.Print ArrPtr(a), ArrPtr(a), ArrPtr(a)
Debug.Print
Debug.Print "По одному"
Debug.Print ArrPtr(a)
Debug.Print ArrPtr(a)
Debug.Print ArrPtr(a)
End Sub
Или запустите такой код:
- Код: Выделить всё
Private Sub Form_Load()
Dim a(1 To 10) As Long
asd a, a, a
End Sub
Private Function asd(arr1() As Long, arr2() As Long, arr3() As Long) As Long
Debug.Print ArrPtr(arr1)
Debug.Print ArrPtr(arr2)
Debug.Print ArrPtr(arr3)
End Function
Нужели и правда при передаче одного и того же массива несколько раз в одну и туже процедуру создаются-таки копии?
Передача ByVal, получается?
Я тихо офигеваю...