我正在尝试使用数组来实现队列,但是我的初始化功能似乎不起作用。甚至函数的第一行也不会执行。这是结构,功能和主要内容:
#include <stdio.h>
#include <stdlib.h>
typedef struct queue queue;
struct queue{
int size, rear, front, length;
int *arr;
};
queue* init(queue *queue1){
queue1->size = 2;
queue1->front = -1;
queue1->rear = -1;
queue1->length = 0;
queue1->arr = (int*) malloc(sizeof(int)*queue1->size);
return queue1;
}
int main(){
queue* queue1 = init(queue1);
}
答案 0 :(得分:2)
您必须首先为您的结构分配空间。
赞:
#include <stdio.h>
#include <stdlib.h>
typedef struct queue {
int size, rear, front, length;
int *arr;
} queue;
queue* init() {
queue *queue1 = malloc(sizeof(queue));
queue1->size = 2;
queue1->front = -1;
queue1->rear = -1;
queue1->length = 0;
queue1->arr = (int*) malloc(sizeof(int)*queue1->size);
return queue1;
}
int main(){
queue* queue1 = init();
}