1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#include <fwd/tracker.h> #define VEC_NAME ptr_tracker #define VEC_TYPE void * #include <conts/vec.h> 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); }