c++ 指针 结构体 malloc segmentation fault报错,如何解决?

这个问题怎么解决啊,为什么会出现错误

// 定义节点
typedef struct linkQueueNode
{
    int data;
    struct linkQueueNode* next;
}LQNode;

// 队头、队尾指针
typedef struct 
{
    LQNode *front; 
    LQNode *rear;
}* LinkQueue;

void InitQueue(LinkQueue &q)
{
    // 头尾指向相同 
    q->rear=(LQNode *)malloc(sizeof(LQNode)); // ???
    q->front=q->rear;

    q->front->next=NULL;
}

int main()
{
    LinkQueue q;
    InitQueue(q);

    return 0;
}
运行结果及详细报错内容

img

q是空,还没初始化呢

关机,从起