队列初始化功能不起作用

时间:2018-06-30 13:26:37

标签: 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->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);
}

1 个答案:

答案 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();
}