【发布时间】:2012-01-25 17:45:28
【问题描述】:
我正在编写一个 C 程序来计算粒子的路径(类似于三体问题)。在我的代码中,我有 typedef 的结构来表示粒子,以及一组向量来表示粒子的速度、加速度和位置。由于这是一个迭代解决方案,我必须重新计算所有这些(并因此 malloc 一个新向量)数千次,并在每次迭代中将它们重新分配给父结构,如下所示:
while(collisionCheck(particle, mass0, mass1) == 0)
{
particle-> velocity = recalculateVelocity(particle);
}
我担心 C 将如何处理孤立结构,我应该像这样释放旧结构吗?
while(collisionCheck(particle, mass0, mass1) == 0)
{
free(particle-> velocity);
particle-> velocity = recalculateVelocity(particle);
}
或者C垃圾会自动收集孤儿并重用内存空间?
【问题讨论】:
标签: c memory-management free