What would you do instead? Add a padding byte in case of a buffer overflow? If you write code with lots of what-if-this-happened cases instead of just concentrating on creating correct code then you're most likely going to create an even bigger mess.
If you also have a known (preferably random) value as padding, and you check it at deallocation, it is called a canary, as in canaries in coal mines. It's a commonly used method to find/protect against overflows.
For stack overflows, see -fstack-protector(-...) for gcc and clang.
For heap overflows, it would depend on the implementation of malloc. glibc has mcheck() and MALLOC_CHECK_.
If you're doing this as a part of release testing, ASan (and other *Sans like MSan) is worth looking into.
Not a padding byte, but a word sized sentinel before and after the allocated block that gets checked upon free. Sentinel gone? -> overwrite bug detected.