pthreadを使ってクラス内の関数をスレッド化することを考えています。 

    for (int i=0;i<threadnum;i++) 
    { 
        if(pthread_create(&tid[i],NULL,(THREADFUNC)threadRoutine,(void*)i) != 0) 
        { 
            perror("pthread_create"); 
        } 
    } 

と書くと、3行目のところで 
error: invalid use of member (did you forget the '&' ?) 
というエラーが出てしまいます。 

プライベートメンバ関数の 
threadRoutine 
を 
void threadRoutine(void* pParam); 
と宣言するところを 
static void threadRoutine(void* pParam); 
にすると、コンパイル可能なようなのですが、今度は、そのメンバ関数内で、staticではないメンバ変数が使えなくなってしまいます。 
メンバ関数をstatic関数にせずに、マルチスレッド化するにはどのようにすればよいのでしょうか?

(THREADFUNC)、tidはそれぞれ 

typedef void *(*THREADFUNC)(void *); 
pthread_t   tid[threadnum]; 

です。