mainの操作をして結果を表示させたいのですが、コンパイルして実行するとセグメンテーション違反と出てしまいます。どこがおかしいのか教えて下さい。
#include <stdio.h>
#include<stdlib.h>
typedef struct cell{
int element;
struct cell *next;
}cell;
cell *queue = NULL;
void enqueue(int i){
cell *n = queue;
cell *n2 = queue;
cell *add = (cell *)malloc(sizeof(cell));
while(n != NULL){
n = n->next;
}
add->element = i;
n2 = n;
n = add;
add->next = n2;
}
void dequeue(){
queue = queue->next;
}
void print(){
cell *n = queue;
while(n != NULL){
printf("%d\n ", n->element);
n = n->next;
}
}
int main(void)
{
enqueue(5);
enqueue(3);
enqueue(6);
dequeue();
enqueue(3);
enqueue(7);
dequeue();
print();
return 0;
}