Archiv verlassen und diese Seite im Standarddesign anzeigen : Array auf 0 setzen?
TobiasBlome
23.07.2011, 18:09
Hallo,
welche Möglichkeit gibt es ein Array auf 0 zu setzen?
Bisher viel mir nur ein es von Hand auf 0 zu setzen:
Dim x(3) As Byte
x(1) = 0
x(2) = 0
x(3) = 0
oder in einer For...Next Schleife.
Gibt es vielleicht noch etwas einfacheres?
Schön wäre ja "x(1) ; 3 = 0" oder so....
Tobias
Che Guevara
23.07.2011, 18:49
Hallo,
du könntest versuchen, eine Overlay-Variable über das Array zu legen und diese dann auf 0 zu setzen, so etwa:
dim ar(4) as byte
dim _overlay as byte at ar(1) overlay
_overlay = 0
Ist allerdings nicht von mir getestet, war nur gerade so ein spontaner Einfall ;)
Gruß
Chris
TobiasBlome
23.07.2011, 19:23
werd ich versuchen - war aber nur eine grundsätzliche Frage ob es da vielleicht etwas gibt.
Tobias
Wirklich verändern kann man nur das bzw die Bascom Statements, denn ein 8-Bit Rechner kann eben nur ein Byte auf einmal verändern, d.h. eine Art FOR-Schleife wird es letztlich auf jeden Fall.
da_reefer
24.07.2011, 11:50
Hallo,
Das mit dem Overlay wird so nicht funktionieren, dabei wird nur das erste Byte im Array gesetzt.
Schau dir mal den Memcopy-Befehl an, der kopiert einen Speicherbereich in den anderen, wobei du bestimmen kannst, welche Adressen inkrementiert werden. Zum Nullen eines Arrays bietet sich Option 2 an.
Ein bisschen schneller gehts noch wenn man sich diese Funktion selbst in Assembler schreibt und dabei auf die Parameterübergabe verzichtet...
mfg
Che Guevara
24.07.2011, 13:10
Oh sorry, die overlay Variable muss natürlich ein größerer Typ sein! Wenn das Array 4 Byte groß ist, dann muss die Overlay Variable mindestens ein 4Byte Datentyp sein (z.b. Long).
Gruß
Chris
TobiasBlome
24.07.2011, 13:47
Vielen Dank für die vielen Antworten.
Dann bleibe ich also bei der FOR-Schleife.
Tobias
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.