Thema Datum  Von Nutzer Rating
Antwort
Rot Adresse der an Funktion übergegebener Arrays falsch
15.04.2015 15:14:27 Witali
Solved
16.04.2015 15:34:12 Gast77278
NotSolved

Ansicht des Beitrags:
Von:
Witali
Datum:
15.04.2015 15:14:27
Views:
2442
Rating: Antwort:
 Nein
Thema:
Adresse der an Funktion übergegebener Arrays falsch
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!

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Adresse der an Funktion übergegebener Arrays falsch
15.04.2015 15:14:27 Witali
Solved
16.04.2015 15:34:12 Gast77278
NotSolved