C 队列初始化函数不存在';行不通

C 队列初始化函数不存在';行不通,c,arrays,data-structures,queue,C,Arrays,Data Structures,Queue,我试图使用数组实现队列,但是我的初始化函数似乎不起作用。即使函数的第一行也不会执行。以下是结构、功能和主要功能: #include <stdio.h> #include <stdlib.h> typedef struct queue queue; struct queue{ int size, rear, front, length; int *arr; }; queue* init(queue *queue1){ queue1->si

我试图使用数组实现队列,但是我的初始化函数似乎不起作用。即使函数的第一行也不会执行。以下是结构、功能和主要功能:

#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);
}
#包括
#包括
typedef结构队列;
结构队列{
内部尺寸、后部、前部、长度;
int*arr;
};
队列*init(队列*queue1){
队列1->size=2;
queue1->front=-1;
队列1->rear=-1;
队列1->长度=0;
queue1->arr=(int*)malloc(sizeof(int)*queue1->size);
返回队列1;
}
int main(){
队列*queue1=init(队列1);
}

必须首先为结构分配空间

像这样:

#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();
}
#包括
#包括
typedef结构队列{
内部尺寸、后部、前部、长度;
int*arr;
}排队;
队列*init(){
queue*queue1=malloc(sizeof(queue));
队列1->size=2;
queue1->front=-1;
队列1->rear=-1;
队列1->长度=0;
queue1->arr=(int*)malloc(sizeof(int)*queue1->size);
返回队列1;
}
int main(){
队列*queue1=init();
}