malloc the real size of a type, not the size of the pointer.