malloc and the "safe" side

  • hat jemand eine ahnung was gemeint sein koennte?

    in welchem fall koennte dieses extrabyte safer sein?

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • Ich vermute er meint einfach (und zurecht), daß off-by-one-Fehler viel viel häufiger und schwerer zu bemerken sind als wenn man sich um mehr als 1 irrt. Wenn man also annimmt, daß die Berechnung der Länge fast sicher entweder stimmt oder um 1 zuwenig ergibt, dann ist man, wenn man 1 dazuzählt, fast sicher auf der sicheren Seite :)

    *plantsch*

  • oookay, das kann ich mal prinzipiell nachvollziehen.
    in dem fall hab ich aber strlen + einen konstanten string/konstante anzahl an zeichen, was soll da also off-by-one werden?

    aber gut, Plantschkuh! und greg k-h widerlegen wird wohl etwas schwierig werden ;)

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • in dem fall hab ich aber strlen + einen konstanten string/konstante anzahl an zeichen, was soll da also off-by-one werden?


    Allein die Überlegung kostet mehr Zeit als einfach +1 hinzuschreiben :) So ist es außerdem einheitlicher: Wenn an manchen Stellen +1 steht und an anderen nicht, dann muß man erst ganz lang überlegen, ob und warum es immer stimmt.

    Ich würds auch nicht selber tun, aber ich kanns schon verstehn. Ist gerade noch eine vertretbare Menge an Voodoo.

    Edit: Wenn, dann würd ich es aber ganz explizit machen: Also statt foo + 7 würd ich foo + 6 + 1 schreiben. Naja, jedem seine Quirks :)

    *plantsch*

  • Zitat von Plantschkuh!


    Edit: Wenn, dann würd ich es aber ganz explizit machen: Also statt foo + 7 würd ich foo + 6 + 1 schreiben. Naja, jedem seine Quirks ;)


    das muss noch viel expliziter werden :distur:

    Code
    #define N (1)
    #define OFF_BY_N_PREVENTION N
    
    
    foo + 6 + OFF_BY_N_PREVENTION

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!