The thing is, you don't manage the memory for your entities. You use ent_create() and ent_remove() (or ptr_remove()) and let the engine manage the entities memory. The reason is that the entity needs to be registered within the engine, the struct needs to be initialized, and the model must be loaded from the file or the cache.
About your last question, you use sizeof() to determine the size of a datatype, for example sizeof(int) would return the size needed for an int which is 4 bytes. However, sizeof() is built into the compiler and not a runtime function so the compiler will replace it with a constant value, this is because Lite-C is a subset of C which is statically typed so at runtime all information about the data is "lost".