Microsoft Excel

Herbers Excel/VBA-Archiv

Adresse der an Funktion übergegebener Arrays falsc

Betrifft: Adresse der an Funktion übergegebener Arrays falsc von: Gustschin
Geschrieben am: 15.04.2015 15:25:48


Public Declare Function VarPtrArray Lib "VBE6" Alias "VarPtr" (ByRef Var() As Any) As Long

Sub TestProz()

Dim a(3) As Integer
Dim b(3) As Integer
Dim ret As Integer
Dim aPtr As Long
Dim bPtr As Long

a(0) = 1
a(1) = 2
a(2) = 3
a(3) = 4
aPtr = VarPtrArray(a())
bPtr = VarPtrArray(b())
ret = test(a(), b())

End Sub

Public Function test(a_test() As Integer, b_test() As Integer) As Integer

Dim a_testPtr As Long
Dim b_testPtr As Long

a_testPtr = VarPtrArray(a_test())
b_testPtr = VarPtrArray(b_test())b_test(0) = a_test(0) + 1

b_test(1) = a_test(1) + 1
b_test(2) = a_test(2) + 1
b_test(3) = a_test(3) + 1

test = 1

End Function

Hallo zusammen,

wenn ich versuche, die Adressen der Arrays mit Funktion VarPtrArray zu ermittel, so stelle folgende Fehler fest:

aPtr und bPtr aus der Prozedur TestProz haben den gleichen Wert obwohl sie die Adresse verschiedener Arrays darstellen sollten.

a_testPtr und b_testPtr aus der Funktion haben zwar unterschiedliche Werte aber die Differenz ist nur 4 Byte und das kann doch nicht sein, weil die Arraygröße länger als 4 Byte ist.

Kann mir jemand erklären, ist das Ergebnis der Funktion VarPtrArray hier tatsächlich falsch oder habe ich einen Denkfehler?

Vielen Dank im Voraus!

  

Betrifft: AW: Adresse der an Funktion übergegebener Arrays falsc von: SF
Geschrieben am: 15.04.2015 16:47:49

Hola,

um Doppelarbeit zu vermeiden:

http://ms-office-forum.net/forum/showthread.php?t=321695

Gruß,
steve1da


 

Beiträge aus den Excel-Beispielen zum Thema "Adresse der an Funktion übergegebener Arrays falsc"