Memset() and calloc() define arrays of bytes, not general objects. This is a lesson learned many times over by generations of C programmers...