日期:2014-05-16  浏览次数:20646 次

c语言多线程实现并行服务器遇到点小问题,求解!
请先看下我的部分代码:

int new_fd;
int i;
pthread_t id[20];  
while(1)
{
  new_fd = accept(new_fd,...,...); //此处省略
  
  pthread_create(id[i++],NULL,(void *)func,NULL); //问题就出在这里,我执行的时候无法创建线程,提示了段错误,我在想是不是这个 id[i++] 这句出现了问题,想问问为什么呢?
}

------解决方案--------------------
&id[i++]
传地址
------解决方案--------------------
&id[i++]
传地址
------解决方案--------------------
int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);
-----------------------------------------------------------
The first argument is a pointer
------解决方案--------------------
....
检查有没有越界。。。
i有没有初始化