我在一个文件中有此代码:
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
错误。