News for hackers. Stuff that matters.
Re:What is your favorite C programming trick? (2009) by Thorrez on Monday November 23, 2020 @04:12AM (#25184931)
Good point. But it seems like it would require usage like this:

    int* p = malloc(sizeof(int));
    FREE(&p);
What if we instead define the macro like this:

    #define FREE(ptr) do { \
        __typeof__(ptr)* const __x = &(ptr); \
        free(*__x); *__x = NULL; \
    } while(0)
Then make usage slightly shorter, as well as more similar to free():

    int* p = malloc(sizeof(int));
    FREE(p);
Re:What is your favorite C programming trick? (2009) by btrask on Monday November 23, 2020 @04:52AM (#25185128)
Taking a pointer-to-pointer is intentional to make it clear that the pointer will be modified. That's actually the most important difference from nn3's version IMHO.