AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

memset in Delphi

Ein Thema von SleepyMaster · begonnen am 13. Apr 2004 · letzter Beitrag vom 1. Jun 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#11

Re: memset in Delphi

  Alt 11. Okt 2008, 16:43
Und immer im Hinterkopf behalten: FillChar und ZeroMemory sind brandgefährliche Prozeduren.
Damit kann man sich den Speicher so zerschiesen, dass das Programm nichteinmal in der Lage ist noch eine Fehlermeldung auszugeben.
Manchmal stürzt das Programm auch erst Minuten nach der falschen Verwendung dieser Prozeduren ab.
Solche Fehler sind dann extrem schwer zu finden.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#12

Re: memset in Delphi

  Alt 1. Jun 2009, 16:43
was wird denn an dessen stelle empfohlen um den speicher entsprechend zu initialisieren?
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#13

Re: memset in Delphi

  Alt 1. Jun 2009, 16:49
Du kannst einfach eine Schleife (mit Bereichsprüfung) nehmen, das ist allerdings langsamer.
Solange man weiß man tut, finde ich die Verwendung von FillChar und ZeroMemory allerdings nicht verkehrt.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#14

Re: memset in Delphi

  Alt 1. Jun 2009, 16:51
Ich denke nämlich auch so...
Habe noch in Erinnerung, dass es in C++ die Funktion SecureZeroMemory gibt (wegen Compileroptimierungen).

Wüsste jetzt aber kein Pendant für Delphi.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: memset in Delphi

  Alt 1. Jun 2009, 17:03
Zitat von sx2008:
Und immer im Hinterkopf behalten: FillChar und ZeroMemory sind brandgefährliche Prozeduren.
Damit kann man sich den Speicher so zerschiesen, dass das Programm nichteinmal in der Lage ist noch eine Fehlermeldung auszugeben.
Das gilt für dynamische Arrays ja genauso. Im Grunde kann man sowas auf viele verschiedene Arten hinbekommen. Man muss eben aufpassen was man da tut.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.070 Beiträge
 
Delphi 12 Athens
 
#16

Re: memset in Delphi

  Alt 1. Jun 2009, 17:07
nja in C ist ZeroMemory ein Macro, welches eventuell wegoptimiert wird, wenn die Variable zu den zu überschreibenden Daten danach nicht mehr verwendet wird.

Es würde also praktisch der Speicher nicht überschrieben.
SecureZeroMemory ist dagegen wohl eine Funktion und wird nicht wegoptimiert.

in Delphi wird ZeroMemory dagegen immer ausgeführt, also ist es quasi das Selbe wie SecureZeroMemory und darum gibt es diese Secure-Version in Delphi nicht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz