I've got a very related question, so I figured i'd hijack this thread.
I'm trying to delete a body, but have not kept track of the cpShapes, and cpBody does not contain any sort of data that points to its shapes. Since cpSpaceFreeChildren() will take care of all of that at the very end, can i just get away with simply freeing the body and removing the body from the space for the time being? Otherwise I would have to iterate through all of the shapes in the space by using space->activeShapes and then making a collection/array of the shapes that match the body that I'm trying to delete...
edit: well it looks like if I don't at least remove the shape from the space it still interacts with the objects in the space somehow. interesting.
edit: Also, i have no idea how to iterate through the shapes while passing some parameters at the same time. I guess i won't be adding the deleting functionality.