/* The +1 is made especially for char as all dynamic allocators (e.g. malloc) will always assign an address that's divisible by 2 (or more). This is true for most (99%) other uses of using a char pointer (addresses will be >2 bytes apart). If the actual size is larger than sizeof(), the result is still valid as it doesn't introduce hash collisions. – egur */