可变参数的free
使用方法:最后一个参数必须为NULL,作为参数退出标志
static const int freeAll(void* needToFree,...)
{
if(NULL == needToFree)
{
return false;
}
va_list arg_ptr;
void* argRetval = NULL;
int argCount = 0;
void* temp = NULL;
va_start(arg_ptr,needToFree);
do{
argRetval = va_arg(arg_ptr,void*);
if(NULL == argRetval)
{
break;
}
temp = argRetval;
free(temp);
temp = NULL;
}while(argRetval != NULL);
va_end(arg_ptr);
free(needToFree);
return true;
}