可变参数的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;
}

posted on 2014-04-11 14:56  __zc__Linux__  阅读(158)  评论(0编辑  收藏  举报