Mit CopyMemory kopierste ja nur den Zeiger zu dem String, welcher nach
DeleteElement ja nicht mehr gültig sein muß. Nimm Fixstrings, dann sollte
es gehen. Es funktioniert ja nur manchmal, weil der Stringbuffer ja nicht
immer sofort überschrieben wird.
[Falsch-Verwendung] Parameter-Übergabe: String
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Stimme ts-soft zu.
Falscher Umgang mit Strukturen, Pointer und Strings.
Wer mit Strukturen und Pointer arbeiten möchte , gibt es von Freak ein sehr gutes Tutorial über Pointer.
http://freak.purearea.net/help/help.html
Variablen als Strings sind Pointer und es werden die Speicherbereiche bei DeleteElement(...) freigeben.
Bei Strukturen mit String und Speicheranforderung mit AllocateMemory und FreeMemory sind noch einige Sachen zu beachten.
Bei falscher Anwendung führt dieses zu einem Speicherleck.
http://www.purebasic.fr/german/viewtopi ... eicherleck
FF
Falscher Umgang mit Strukturen, Pointer und Strings.
Wer mit Strukturen und Pointer arbeiten möchte , gibt es von Freak ein sehr gutes Tutorial über Pointer.
http://freak.purearea.net/help/help.html
Variablen als Strings sind Pointer und es werden die Speicherbereiche bei DeleteElement(...) freigeben.
Bei Strukturen mit String und Speicheranforderung mit AllocateMemory und FreeMemory sind noch einige Sachen zu beachten.
Bei falscher Anwendung führt dieses zu einem Speicherleck.
http://www.purebasic.fr/german/viewtopi ... eicherleck
FF
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Warum/Wann wird der String gelöscht? Es wird doch gar nicht angegebn, das der String-Buffer freigegeben werden soll.ts-soft hat geschrieben:Mit CopyMemory kopierste ja nur den Zeiger zu dem String, welcher nach
DeleteElement ja nicht mehr gültig sein muß.
Wenn ich das Struktur-Element 'Token\sValue' als Pointer erstelle, funktioniert alles. Warum?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> Warum/Wann wird der String gelöscht?
Weil Du das Element löscht, dann wird aufgeräumt, manchmal sofort, manchmal später
Normalle Strings werden nur als Pointer gespeichert, also wird mit
CopyMemory auch nur der Pointer copiert. Ansonsten mußte Dir den
Stringbuffer extra kopieren oder besser Fixstrings verwenden, die befnden
sich tatsächlich dort, wo du sie vermutest
Weil Du das Element löscht, dann wird aufgeräumt, manchmal sofort, manchmal später
Normalle Strings werden nur als Pointer gespeichert, also wird mit
CopyMemory auch nur der Pointer copiert. Ansonsten mußte Dir den
Stringbuffer extra kopieren oder besser Fixstrings verwenden, die befnden
sich tatsächlich dort, wo du sie vermutest
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Ich finde der Titel dieses Threads sollte geändert werden. Das Wort "Bug" sollte nicht darin vorkommen (kann z.B. durch "Problem" ersetzt werden).
So wie es z.Z. ist, ist es sehr irreführend, und vor allem dazu geeignet PB-Benutzer zu verunsichern! Unbegründet und unnötig zu verunsichern, denn ein Bug in PB konnte ja keineswegs aufgezeigt werden.
Gruß, Little John
So wie es z.Z. ist, ist es sehr irreführend, und vor allem dazu geeignet PB-Benutzer zu verunsichern! Unbegründet und unnötig zu verunsichern, denn ein Bug in PB konnte ja keineswegs aufgezeigt werden.
Gruß, Little John
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Hab den Titel mal angepaßt. Wir Wissen ja wo der Bug saß
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.