Terms:

"alloc" reserves un-initialized, unusable memory.
"init" creates usable memory.

Types:

Use size_t for indexes in collections. size_t is the largest thing malloc() can take, and malloc can work on
element sizes of 1, so it stands to reason that size_t holds the largest single thing you can allocate.