Re: Schreibfehler an Adresse 46 im RAM?
Verfasst: 10.03.2011 01:21
Pointer-Arrays sind vollkommen in ordnung ...
TS-Soft, hier hast du mal unrecht ...
Ein Pointer hat genauso wie eine Integer einen Ort für die 4/8 Bytes der Zahl/Adresse
Debug @*Pointer
Im prinzip ist
Dim *Pointers(10)
das gleiche wie
Dim Pointers.i(10)
wenn es um die Adressen, Zahlen geht ... Man erstellt halt ein Array mit Adressen.
Nützlich beim PointerArray ist, das man ihnen noch n Struktur geben kann (ohne das die größe eines Feldes sich ändert).
Wenn der Pointer zB auf ein LinkedList Element verweist...
Zum Code:
Zunächst mal macht DIM automatisch eine Leerung ... FreeArray braucht man nicht!
Auf anhieb sehe ich leider nicht ob es ein Fehler in deinem Code gibt.
Was mir jedoch etwas sorgen macht ist:
Das Problem was ich hier sehe ist, du schreibst in einem String (deren Pointer ist ja *Char) eine NULL.
Für den String heißt das, er wurde gekürtzt.
Für den Speicher heißt das, er kann alles danach (was ja eigentlich noch zum String gehörte) anderen Sachen zuweisen, z.B einem Array, Variable usw.
Trotzdem ließt du aber fleißig weiter ... das führt meiner Meinung nach zu Speicherlegs!
Denn du übergibst dann Pointer zu Stellen, an den Du deine anderen Strings vermutes, welche aber nicht mehr existieren!
Weil du der ersten abgetrennt hast ...
Bitte starte mal mit Purifier, u.u. müsste der sich dann melden!
TS-Soft, hier hast du mal unrecht ...
Ein Pointer hat genauso wie eine Integer einen Ort für die 4/8 Bytes der Zahl/Adresse
Debug @*Pointer
Im prinzip ist
Dim *Pointers(10)
das gleiche wie
Dim Pointers.i(10)
wenn es um die Adressen, Zahlen geht ... Man erstellt halt ein Array mit Adressen.
Nützlich beim PointerArray ist, das man ihnen noch n Struktur geben kann (ohne das die größe eines Feldes sich ändert).
Wenn der Pointer zB auf ein LinkedList Element verweist...
Zum Code:
Zunächst mal macht DIM automatisch eine Leerung ... FreeArray braucht man nicht!
Auf anhieb sehe ich leider nicht ob es ein Fehler in deinem Code gibt.
Was mir jedoch etwas sorgen macht ist:
Code: Alles auswählen
If *Char\c = 10 Or *Char\c = 13
*Char\c = 0
Für den String heißt das, er wurde gekürtzt.
Für den Speicher heißt das, er kann alles danach (was ja eigentlich noch zum String gehörte) anderen Sachen zuweisen, z.B einem Array, Variable usw.
Trotzdem ließt du aber fleißig weiter ... das führt meiner Meinung nach zu Speicherlegs!
Denn du übergibst dann Pointer zu Stellen, an den Du deine anderen Strings vermutes, welche aber nicht mehr existieren!
Weil du der ersten abgetrennt hast ...
Bitte starte mal mit Purifier, u.u. müsste der sich dann melden!