Stop Memsetting Structures
Another reason to not memset structures: In the code    struct foo {
        void * bar;
    } baz;
    
    ...
    
    memset(&baz, 0, sizeof(struct foo));
    assert(baz.bar == NULL);

it's possible for the assertion to fail, since NULL it not guaranteed to be represented in memory by a zero bytes.