`free` usually means freeing the struct itself.
`clear` usually means reset the content.
this function only frees the content, but don't reset pointers to NULL, so I think it's closer to `clear`'s meaning.