【发布时间】:2026-01-06 13:20:03
【问题描述】:
我将指向结构数组的指针传递给线程函数。
pthread_create(&init_thread, NULL, initialize, reservations);
后来,我不知道如何在线程函数中取消引用它。
预订是
struct reservation reservations[20]
结构数组。
线程函数初始化如下。
void * initialize(void * args) {
struct reservation *all_reservations[] = (struct reservation *[])args;
// Wait for semaphore signals
sem_wait(mutexA);
sem_wait(mutexB);
for (int i = 0; i < 20; i++) {
if (all_reservations[i]) {
all_reservations[i] = NULL;
}
}
// Signal semaphores for other processes
sem_signal(mutexA);
sem_signal(mutexB);
printf("%s\n","All reservations are initialized.");
}
我收到此错误: 错误:转换为不完整的类型'struct reservation *[]'
【问题讨论】:
标签: c arrays multithreading struct