What is an object pool, and how to create one in C?