diff --git a/queue.c b/queue.c
index 8ddd1279986ee5092a55544887e4e36335b09bc1..cac059ee4c802504376ce9c3c9cf6cee7f95dbeb 100644
--- a/queue.c
+++ b/queue.c
@@ -4,3 +4,10 @@ bool is_empty(queue q){
 	return (q.tail<0);
 }
 
+void queue_init(queue *q)
+{
+	q->capacity = -1;
+	q->tail = -1;
+	q->data = malloc(sizeof(int));
+	return q;
+}
\ No newline at end of file
diff --git a/queue.h b/queue.h
index 12a77cbfc5513916871595a0792e3f86a609fa0f..a327dd2510120c9ca22698ea1fda55049dae2a7f 100644
--- a/queue.h
+++ b/queue.h
@@ -8,5 +8,6 @@ typedef struct _queue {
 } queue;
 
 bool is_empty(queue q);
+void queue_init(queue *q);
 
 #endif