Linux用C写多线程的递归算法问题

我想用多线程实现一个递归算法,现有一个问题不知如何解决,请高手赐教

int pthread_create(pthread_t *thread,pthread_attr_t *attr, void *(*start_routine)(void *),void *arg);
里的void *arg是表示线程调用函数的参数,如果我的函数有多个参数,那怎么表示呢?

代码如下

void MakeTopGraph(int x, int y)
{
int *ret,i;
pthread_t *pid;

pid=(pthread_t *)malloc(nextHopNum*sizeof(pthread_t));
ret=(int *)malloc(nextHopNum*sizeof(int));

for(i=0;i<x+y;i++)
{
*(ret+i)=pthread_create(pid+i,NULL,(void *) MakeTopGraph, XXXXXXX); //问题就是这里如何讲需要的XY值传到新建的线程去
if(ret!=0)
{
printf ("Create pthread error!\n");
}
}
}

谢谢!
[665 byte] By [diablo2man-YoUeR] at [2008-4-24]
# 1
typedef struct
{
int x;
int y;
}TAG_XY;

void MakeTopGraph(TAG_XY *pxy)
{
int x = pxy->x;
int y = pxy->y;
...
}

不过得注意解决pxy生命周期的问题,很容易的
# 2
结构体解决
dai_whhit at 2007-10-20 > top of Msdn China Tech,Linux/Unix社区,程序开发...