Wie kann „Nutzung nicht initialisierten Speichers für Spaß und Profit“ sicher implementiert werden?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie kann „Nutzung nicht initialisierten Speichers für Spaß und Profit“ sicher implementiert werden?

by Guest » 16 Jan 2025, 04:05

Ich möchte mit dem unter https://research.swtch.com/sparse beschriebenen Trick eine dichte Ganzzahlmenge in C++ erstellen. Dieser Ansatz erzielt eine gute Leistung, indem er sich selbst erlaubt, nicht initialisierten Speicher zu lesen.

Wie kann ich diese Datenstruktur implementieren, ohne undefiniertes Verhalten auszulösen und ohne mit Tools wie Valgrand oder ASAN in Konflikt zu geraten? ?

Bearbeiten: Es scheint, als würden sich die Antwortenden auf das Wort „nicht initialisiert“ konzentrieren und es im Kontext des Sprachstandards interpretieren. Das war wahrscheinlich eine schlechte Wortwahl meinerseits – „nicht initialisiert“ bedeutet hier nur, dass sein Wert für die korrekte Funktion des Algorithmus nicht wichtig ist. Es ist offensichtlich möglich, diese Datenstruktur sicher zu implementieren (LLVM macht dies in SparseMultiSet). Meine Frage ist, was der beste und leistungsfähigste Weg ist, dies zu tun?

Top