I have a struct that only contains pointers to memory that I\'ve allocated. Is there a way to recursively free each element that is a pointer rather than calling free on eac
There is no way in the C language to do this, nor would it be desirable - C doesn't know that each member is a distinct pointer allocated via malloc and C contains no run-time type info support to do this - at runtime the compiled code to access the struct is just using offsets off of a base pointer for each member access.
The simplest approach would be to write a "FreeModel" function:
void FreeModel(model* mdl)
{
free(mdl->vertices);
... // Other frees
free(mdl);
}
I don't believe that's possible in any form of C.
You could code a separate function for that specific structure where you would pass the pointers and free them there.
EDIT: Ups, too late, never saw those answers...