我正在构建一个简单的粒子系统,并希望使用结构的单个数组缓冲区来管理我的粒子。也就是说,我找不到允许我从任意缓冲区进行 malloc() 和 free() 的 C 函数。这是一些伪代码来显示我的意图:
Particle* particles = (Particle*) malloc( sizeof(Particle) * numParticles );
Particle* firstParticle = <buffer_alloc>( particles );
initialize_particle( firstParticle );
// ... Some more stuff
if (firstParticle->life < 0)
<buffer_free>( firstParticle );
// @ program's end
free(particles);
where<buffer_alloc>
和<buffer_free>
are 从任意指针分配和释放内存块的函数(可能带有额外的元数据,例如缓冲区长度等)。是否存在此类功能和/或是否有更好的方法来做到这一点?谢谢!