我的C知识还很年轻,所以请原谅我:)真的有两个问题,
如何将以下代码转换为正确使用的东西,
pthread_t *threadsArray
而不是threadsArray[MAXCON]
?有充分的理由吗?我听说我应该避免使用显式数组,并尽可能使用指针定义的数组。
pthread_t threadsArray[MAXCON];
int k;
for (k = 0; k < MAXCON; k++) {
fprintf(stderr, "Make %d\n", k);
int *connfd = malloc(sizeof(int));
*connfd = accept(fd, (struct sockaddr *) &cliaddr, &cliaddrlen);
if (*connfd == -1) {
perror("Unable to accept connection");
return 1;
}
fprintf(stderr, "Waited\n");
pthread_t thread;
pthread_create(&thread, NULL, readWriteToClient, connfd);
threadsArray[k] = thread;
}
for(k = 0; k < MAXCON; k++){
fprintf(stderr,"Join %d\n",k);
pthread_t thread = threadsArray[k];
pthread_join(thread, NULL);
}