As @datenwolf's response states, you cannot make any assumptions about how mallocthe memory address provides you. An MSB may contain important bits that you could overwrite if you tried to use them to store metadata. I worked on a 32-bit system that returned addresses with bits set in the MSB addresses (not from malloc, but for other memory allocation functions in the system).
, , malloc , . , 32- 4- , 64- 8- . , , 2 3 . , memalign. , , , . / , .
. . , .