Макрос free который удаляет все указатели через запятую
#define FREE_PTR(...) \
do { \
int i=0;\
void *pta[] = {__VA_ARGS__}; \
for( ; i < sizeof(pta)/sizeof(void*); i++) free(pta[i]); \
} while(0)