Es steht dir frei, die Lib, natuerlich barrierefrei, nach 64 bit zu portieren.funker hat geschrieben:Unter 64 Bit nich? Schlecht!
Gültigkeit von Zeigern überprüfen
Re: Gültigkeit von Zeigern überprüfen
Re: Gültigkeit von Zeigern überprüfen
Wenn ich darf gerne aba ich kann nich für ein sauberen Code garantieren... 

Re: Gültigkeit von Zeigern überprüfen
Du kannst auch das probieren/modifizieren/erweitern:funker hat geschrieben:Unter 64 Bit nich? Schlecht!edel hat geschrieben:In den pbosl gibt es noch eine Try&Catch Lib, funktioniert unter 32 bit sehr gut.
- [Windows XP+] Try .. Catch .. EndTry - Error Handling
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Re: Gültigkeit von Zeigern überprüfen
Wie schon geschrieben nutzt man dafür heutzutage nurnoch Try&Catch. Das heisst man greift einfach drauf zu und hat nen Errorhandler, der im Fehlerfall ausgeführt wird.
Das nützt dir aber recht wenig. Ein Pointer wird nie einfach so ungültig, schon garnicht wenn er auf eine Prozedur zeigt. Ein gültiger Pointer muss auch nicht zwangsweise ein korrekter Pointer sein. Er kann auf eine gültige Speicheradresse zeigen, die aber garnicht die zu erwartenden Daten enthält.
Einige testen ob der Pointer 0 ist um abzufangen wenn er noch nicht initialisiert wurde. Aber auch das kann man sich in vielen Fällen sparen.
Das nützt dir aber recht wenig. Ein Pointer wird nie einfach so ungültig, schon garnicht wenn er auf eine Prozedur zeigt. Ein gültiger Pointer muss auch nicht zwangsweise ein korrekter Pointer sein. Er kann auf eine gültige Speicheradresse zeigen, die aber garnicht die zu erwartenden Daten enthält.
Einige testen ob der Pointer 0 ist um abzufangen wenn er noch nicht initialisiert wurde. Aber auch das kann man sich in vielen Fällen sparen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Re: Gültigkeit von Zeigern überprüfen
Eine Möglichkeit die es durchaus noch gibt wäre (ähnlich wie es der Purifier macht) eine Signal-Bytefolge bei jedem erstellten Objekt/Speicher vorauszustellen.
So kannst du beim Prüfen der Gültigkeit testen, ob die geforderte Bytesequenz (4 oder 8 Byte reichen ja) in den ersten Bytes des Speichers stehen.
Ich verwende dieses Verfahren zB bei meinen Baumstrukturen, um festzustellen ob der Node des Baumes gültig ist oder "illegal" verändert wurde. So steht in den ersten 4 Byte immer eine Prüfsumme der Struktur.
Dieses Prüfung und das zusätzliche Feld kann man ja entfernen (CompilerIf) wenn der Debugger aus ist.
So kannst du beim Prüfen der Gültigkeit testen, ob die geforderte Bytesequenz (4 oder 8 Byte reichen ja) in den ersten Bytes des Speichers stehen.
Ich verwende dieses Verfahren zB bei meinen Baumstrukturen, um festzustellen ob der Node des Baumes gültig ist oder "illegal" verändert wurde. So steht in den ersten 4 Byte immer eine Prüfsumme der Struktur.
Dieses Prüfung und das zusätzliche Feld kann man ja entfernen (CompilerIf) wenn der Debugger aus ist.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- hjbremer
- Beiträge: 822
- Registriert: 27.02.2006 22:30
- Computerausstattung: von gestern
- Wohnort: Neumünster
Re: Gültigkeit von Zeigern überprüfen
Aber wenn man sich das spart, muß man wissen, das nicht initialisierte Strings unter Umständen null zurückgeben.Thorium hat geschrieben:Einige testen ob der Pointer 0 ist um abzufangen wenn er noch nicht initialisiert wurde. Aber auch das kann man sich in vielen Fällen sparen.
z.B.
Define a.string
Debug @a\s
erst wenn ein String und sei es ein Leerstring, zugewiesen wurde, wird der Pointer gültig
a\s = ""
Debug @a\s
Purebasic 5.70 x86 5.72 X 64 - Windows 10
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer