想请问一下void指针还有二级指针作为参数的用法

想请教一下void指针还有二级指针作为参数的用法
想请教一下各位,一个void的指针还有二级指针该怎么理解比较准确。
还有作为参数时怎么样才能接受任类型的参数,
为什么我当我把二级指针的参数传到函数里一直在报错说类型不匹配,
该怎么才能克服这一困难完成下述功能?

可以利用数组存储、取得、删除任意多的任意类型数据指针
void add(void** array, void* item, int* len)
void* get(void* array, int index)
void* remove(void** array, int index, int* len) // 返回删除的元素

------解决方案--------------------
#include "stdafx.h"
#include<iostream>
using namespace std;


void add(void** array, void* item, int* len)
{
     return;
}

int _tmain(int argc, _TCHAR* argv[])
{
    int a[5], b, c;
    add((void**)(&a), (void*)(&b), &c);
    return 0;
}