Aktuelle Zeit: 18.11.2017 12:11

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Array von Pointern
BeitragVerfasst: 06.10.2017 17:07 
Offline
Benutzeravatar

Registriert: 19.05.2012 17:09
Im Zusammenhang mit meine BLOB Problem bin ich bei dessen Lösung über eine andere Frage gestolpert:
Wie übergibt man eigentlich ein Array von Pointern an eine Prozedur ?

Code:
EnableExplicit

Dim *BlobMem(5)
Dim BlobSize.i(5)
Define BloBNr.i

Procedure prepareBlobs(Array *BlobMem(1),Array BlobSize.i(1))
  Protected BlobNr.i
  For BlobNr=0  To 4
    BlobSize(BlobNr)=10*BlobNr+5  ; fiktive Werte
    *BlobMem(BlobNr)=AllocateMemory(BlobSize(BlobNr))
    Debug "in prepare "+"Nr="+Str(BlobNr)+ "Mem="+Str(*BlobMem(BlobNr))+"size="+Str(BlobSize(BlobNr))
  Next
EndProcedure

prepareBlobs(@*BlobMem(),@BlobSize())

For BlobNr=0 To 4
  Debug "nach prepare "+"Nr="+Str(BlobNr)+ "Mem="+Str(*BlobMem(BlobNr))+"size="+Str(BlobSize(BlobNr))
  FreeMemory(*BlobMem(BlobNr))
Next



Die Definition von prepareBlobs wird als syntaktisch richtig erkannt. Nur beim Aufruf von prepareBlobs gibt es stets Probleme, egal ob ich
prepareBlobs(@*BlobMem(),@BlobSize()) oder prepareBlobs(*BlobMem(),@BlobSize()) benutze.

Wo liegt mein Fehler?

_________________
Windows10 (+VISTA) / PB5.41 / BasicForAndroid / Arduino-Due


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Array von Pointern
BeitragVerfasst: 06.10.2017 17:16 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Ich würde statt mehrerer gleich groß dimensionierter Arrays eine Struktur und ein Array nehmen:
Code:
EnableExplicit

Structure Blob
   *mem
   size.i
EndStructure

Dim blobs.Blob(5)


Procedure prepareBlobs(Array blobs.Blob(1))
   Protected BlobNr.i
   For BlobNr = 0 To 4
      With blobs(BlobNr)
         \size = 10 * BlobNr + 5  ; fiktive Werte
         \mem = AllocateMemory(\size)
         Debug "in prepare " + "Nr=" + BlobNr + "Mem=" + \mem + "size=" + \size
      EndWith
   Next
EndProcedure

prepareBlobs(blobs())

Define BloBNr.i

For BlobNr = 0 To 4
   Debug "nach prepare " + "Nr=" + BlobNr + "Mem=" + blobs(BlobNr)\mem + "size=" + blobs(BlobNr)\size
   FreeMemory(blobs(BlobNr)\mem)
Next

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Tevo Tarantula 3D-Drucker von Gearbest (Aufbau und Review)
Ubuntu Gnome 16.04.3 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Array von Pointern
BeitragVerfasst: 06.10.2017 17:26 
Offline
Benutzeravatar

Registriert: 19.05.2012 17:09
Danke Nic,
klappt prima.

_________________
Windows10 (+VISTA) / PB5.41 / BasicForAndroid / Arduino-Due


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye