#include #define VEC_NAME ptr_tracker #define VEC_TYPE void * #include static struct ptr_tracker ptrs; void *track_ptr(void *p) { ptr_tracker_append(&ptrs, p); return p; } void free_tracked_ptrs() { foreach(ptr_tracker, ptr, &ptrs) { free(*ptr); } ptr_tracker_destroy(&ptrs); }