如何初始化嵌套结构

时间:2019-02-20 21:16:45

标签: c

我在一个文件中有此代码:

struct ReadyQueue {
    struct PCB *pcb;
    struct ReadyQueue *next;
};

extern struct CPU new_cpu;

typedef struct ReadyQueue *node;

node* head;

node createNode() {
    node temp;
    temp = (node)malloc(sizeof(struct ReadyQueue));

    if (temp == NULL) {
        printf("Error creating node");
        exit(0);
    }

    temp->next = NULL;
    free(temp);

    return temp;
}

node* head;

void addToReady(FILE *p) {

    node temp;
    temp = createNode();

    temp->pcb->PC = p;  // error here

    if (temp == NULL) {
        printf("Error");
    }

}

将创建节点的链接列表。在我的addToReady函数中,我无法设置PCB值,该值在另一个文件中声明了另一个结构:

struct PCB {
  FILE *PC;
};

我在temp->pcb->PC=p中遇到错误,并给了我一个Segmentation Fault 11错误。

0 个答案:

没有答案