diff --git a/header/vectors.h b/header/vectors.h
index 10f6c41ed73d7a9e8dcb539163d475095a8e1bd2..629f278c365f13a0a5d43eb7af457d86c43951a3 100644
--- a/header/vectors.h
+++ b/header/vectors.h
@@ -29,5 +29,6 @@ type vector_remove(vector vec, int index);
 void vector_insert(vector vec, type element, int index);
 void vector_empty(vector vec);
 void vector_free(vector vec);
+void vector_print(vector vec, void (*print)(type));
 
 #endif
\ No newline at end of file
diff --git a/src/test_vectors.c b/src/test_vectors.c
index 72816a24fd609f8c53ca99ad6f450c1d48c00f32..96177ccdcef69a8b520a0d308334ee299fcbfec0 100644
--- a/src/test_vectors.c
+++ b/src/test_vectors.c
@@ -10,6 +10,8 @@
 #include <stdint.h>
 #include "../header/vectors.h"
 
+void print_type(type val);
+
 int main()
 {	
 	//Test Vector create
@@ -49,10 +51,21 @@ int main()
 	vector_empty(test);
 	printf("Empty Vector lenght : %d \n", vector_length(test));
 
-	//Test Vector Free
-	vector_free(test);
+	//Test Vector Print
+	for (int i = 0; i < 6; i++)
+	{
+		vector_push(test, i);
+	}
+	vector_print(test, &print_type);
 
 	
+	//Test Vector Free
+	vector_free(test);
 
 	return 0;
+}
+
+void print_type(type val)
+{
+	printf("%d \n", val);
 }
\ No newline at end of file
diff --git a/src/vectors.c b/src/vectors.c
index bc18ac373d551cfc31c8d0be88ef3958454b2289..d732979f05de8099aa59c18546ec7f865aa8e156 100644
--- a/src/vectors.c
+++ b/src/vectors.c
@@ -127,4 +127,12 @@ void vector_free(vector vec)
 {
 	free(vec->content);
 	free(vec);
+}
+
+void vector_print(vector vec, void (*print)(type))
+{
+	for (int i = 0; i < vec->length; i++)
+	{
+		print(vec->content[i]);
+	}
 }
\ No newline at end of file