diff --git a/Makefile b/Makefile
index 772f8ad39b3d13f51dc292721cc3b3dd8e4201d8..2e7e3d6c52b307cb4928b3930adae7f15b956430 100644
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,9 @@ LDFLAGS= -fsanitize=address -fsanitize=leak
 exe: test
 	./$^
 
+main: main.o stack.o
+	$(CC) $^ -o $@ $(CFLAGS) $(LDFLAGS)
+
 test: stack_test.o stack.o
 	$(CC) $^ -o $@ $(CFLAGS) $(LDFLAGS)
 
diff --git a/main b/main
new file mode 100755
index 0000000000000000000000000000000000000000..3add16ae87b7232932a37a234a18f8237be039eb
Binary files /dev/null and b/main differ
diff --git a/main.c b/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..06f90b6b3ecf157d779a6dc4f0020e67a21ae4c5
--- /dev/null
+++ b/main.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "stack.h"
+
+int main(int argc, char *argv[])
+{
+
+    if (argc-2 != atoi(argv[1]))
+    {
+        printf("Error taille invalide\n");
+        exit(EXIT_FAILURE);
+    }
+
+    int *tab = malloc(atoi(argv[1]) * sizeof(int));
+
+    for (int i = 0; i < atoi(argv[1]); i++)
+    {
+        tab[i] = atoi(argv[i+2]);
+    }
+    
+
+    for (int i = 0; i < atoi(argv[1]); i++)
+    {
+        printf("%d\n", tab[i]);
+    }
+
+    printf("---\n");
+    sort(tab, argc-2);
+
+
+    for (int i = 0; i < atoi(argv[1]); i++)
+    {
+        printf("%d\n", tab[i]);
+    }
+
+    free(tab);
+
+    return 0;
+}
\ No newline at end of file