返されたポインタの前にサイズ他の管理情報を置いているメモリーアロケーターが多い。
こんな感じ
struct mem {
size_t size;
...
char data[]; <==== mallocはこのアドレスを返す
};