C 如何添加到结构指针数组中

C 如何添加到结构指针数组中,c,operating-system,C,Operating System,我创建一个struct Thread_Queue call queueUsed数组,每次调用enqueue_线程函数(Thread,Queue)时,我检查queueUsed是否包含该队列,如果不包含,则将该队列添加到线程中。我做错了什么 这是我的kthrad.h文件的一部分,在我的kthread.c文件中使用了enqueue_线程 extern struct Thread_Queue *queueUsed[100]; static __inline__ void Enqueue_Thread

我创建一个struct Thread_Queue call queueUsed数组,每次调用enqueue_线程函数(Thread,Queue)时,我检查queueUsed是否包含该队列,如果不包含,则将该队列添加到线程中。我做错了什么

这是我的kthrad.h文件的一部分,在我的kthread.c文件中使用了enqueue_线程

extern struct Thread_Queue *queueUsed[100]; 

static __inline__ void Enqueue_Thread(struct Thread_Queue *queue,
                                      struct Kernel_Thread *kthread) {
    Add_To_Back_Of_Thread_Queue(queue, kthread);

    int x=0;
    for(;x<100;x++){

        if(queueUsed[x] == NULL){
            queueUsed[x]=queue;
            break;
        }else if(queueUsed[x] == queue)
            break;
    }
}
extern struct Thread_Queue*queueUsed[100];
静态uuu内联uuuu无效排队u线程(结构线程u队列*队列,
结构内核(线程*kthread){
将_添加到_线程_队列(队列,kthread)的_Back_中;
int x=0;

对于(;x为什么要向线程的队列添加指针,而不是向线程的队列添加消息?另外:调用此函数是否有任何锁定,以确保
if(queueUsed[x]==NULL){queueUsed[x]=队列;
不是竞争条件?我已经2年没有使用c了,所以我不知道我做得对不对?我甚至没有为queueUsed分配任何空间,对吗?事实上,@help,您确实为
queueUsed
分配了空间;至少在程序链接正确的情况下是这样做的。您只是在程序的数据段中分配了它我喜欢:而且