Sichere Division in C mit Maybe

2025-08-11

Dieser Artikel beschreibt die Implementierung von typsicheren und grenzen-sicheren generischen Containern in C. Der Autor führt einen `Maybe`-Typ ein, inspiriert von Haskell, um Funktionen zu behandeln, die möglicherweise keinen Wert zurückgeben (z. B. Division durch Null). Eine sichere Divisionsfunktion wird mithilfe von Makros erstellt, um `Maybe` zu definieren und die Division durch Null und den Grenzfall der Division der kleinsten darstellbaren Ganzzahl durch -1 zu behandeln. Der von GCC generierte Assemblercode wird analysiert, um die Sicherheit der Funktion zu überprüfen. Der Autor schließt mit dem Hinweis auf die Grenzen dieses Ansatzes, um die vollständige Sicherheit von C-Programmen zu beweisen.

Mehr lesen
Entwicklung

Generische Container in C: Sichere und effiziente Implementierung von vec

2025-07-26

Dieser Artikel beschreibt die Implementierung eines typsicheren und grenzenkontrollierten generischen Containers, `vec`, in C. `vec` ist im Wesentlichen ein dynamisches Array, das mit `realloc` erweitert wird. Der Autor erklärt die Implementierung, einschließlich der Funktion `vec_push` und der Fehlerbehandlung bei der Speicherzuweisung. Zwei verbesserte Schnittstellen, `vec_push_cap` und `vec_push_auto`, werden zur Leistungsoptimierung untersucht. Die Grenzsicherheit wird ebenso behandelt wie die Interoperabilität mit traditionellen C-Arrays über das Makro `vec2array`.

Mehr lesen