我在编译时不断收到这个错误,我不知道为什么。代码块是:
static int
run(int nm, int nf)
{
int i, j;
int err, n = nm + nf;
pthread_t thread[n];
for (i = 0; i < n; i++) {
err = pthread_create(&thread[i], NULL,
i < nm ? male : female, &shared_bathroom);
if (err) {
fprintf(stderr, "%s: %s: unable to create thread %d: %d\n",
progname, __func__, i, err);
return EXIT_FAILURE;
}
}
for (j = 0; j < n; j++) {
if (thread[j]) (void) pthread_join(thread[j], NULL);
}
return EXIT_SUCCESS;
}
错误出现在第二个 for 循环下的 if 语句行。具体来说,我认为它指的是(thread[j])
.