DIMs Speicherreservierungsmethode

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Omenaton_2

Betreff: DIMs Speicherreservierungsmethode

BeitragDo, Aug 13, 2009 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi !

Ich hätte folgende Frage :
Wenn ich am Anfang des Programmes ein DIM erschaffe sagen wir in Größe 100 Dim gfxIcon_H(99), lasse es aber erstmal leer, reserviert dieses DIM für sich da schon speicher so, als ob die 100 Felder alle voll wären ?
Wahrscheinlich nicht, weil da weiß das Programm noch gar nicht, womit es gefüllt werden soll.
Wenn ich aber wenig später ein paar Felder mit Grafiken auffülle (ich benutze dieses DIM um kleine 48x48 pixel große Icons für Items abzulegen) und somit das Programm weiß, daß in diese DIM nicht einfach nur kleine Integer-Werte reinkommen sondern Images, wird dann für alle 100 Felder Speicher belegt ?

Die Sache wird dadurch erst wirklich kompliziert und unschön, daß ich nicht von 0 bis 99 fortlaufend das DIM füllen will, sondern mit Lücken.
Also zum Beispiel in Offset 2, 6, 22 und 55 kommen Grafiken rein, in die anderen gar nichts, auch später nicht. Das hätte gute Gründe (IDs), auf die ich jetzt nicht näher eingehen will, das spielt keine Rolle warum.
Werde in so einem Fall zu Mindest die Offsts bis 55 alle Speicher reservieren oder nur die tatsählich belegt Felder ?

Sollte es so sein, daß immer nur dann, wenn ein DIM Offset tatsächlich eine "Ladung" erhält Speicher verbraucht wird, dann wäre das nämlich eine sehr gute Methode an der Stelle in meinem Code, wo das gebraucht wird.

Wenn nicht, dann muß ich wohl fortlaufend das DIM füllen, das wäre aber in Zusammenhang ungünstig.

BladeRunner

Moderator

BeitragDo, Aug 13, 2009 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Du dim bla(99) machst werden 100*4 Byte Speicher reserviert(plus evtl. einem kleinen Header für das DIM), da alle Datentypen in BB primär mal 4 Byte belegen. Images, Strings etc werden als Handle, sprich als 32-Bit-Pointer eingespeichert, der auf die eigentliche Datenstruktur zeigt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Omenaton_2

BeitragDo, Aug 13, 2009 12:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Anwort.
Dann kann ich hoffentlich heute Nachmittag die aktivierten Items wegen Cooldown-Phase in Graustufen Bildern wie geplant einbauen.

blackgecko

BeitragFr, Aug 14, 2009 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Wenn ich aber wenig später ein paar Felder mit Grafiken auffülle...

Da werden ja nur die Nummern gespeichert, die das Programm braucht, um auf die geladenen Bilder im Speicher zuzugreifen, nicht die Bilder selbst.
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group