( locsemege | 2023. 08. 02., sze – 22:05 )

Jaj, de egyszerű, s hogy ez nekem mennyire nem jutott eszembe! Köszönöm. :)

Azt tudom, hogy a realloc(), free() az adattípusra mutató pointert eszi. Az nfree() megoldásomnak a pointer címét kell átadni, s a hely felszabadítása után NULL pointert ír bele, ezzel biztosan el lehet kerülni a double free és a use after free típusú hibákat. Jó, az utóbbi esetben NULL pointer dereference lesz, de abba legalább azonnal belepusztul, s könnyen kiderül a baj.

Itt nem arra gondolok, hogy az ember benéz valamit, hanem előfordul, hogy hibakezelés, egyebek miatt másodjára is felszabadítanánk a helyet. A free(NULL) viszont legitim, s akkor nem kell rettentő bonyolult adminisztrálás ehhez.