Bonjour tout le monde !

D'abbord excusez moi si le titre n'est pas très clair, j'ai du coup écrit un mini code pour expliquer mon problème.

J'essaie de faire passé un pointeur vers le "char** argv" du main en paramètre d'une autre fonction comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#include <stdio.h>
 
void print_args(int* argc, char*** argv)
{
    for (int i = 0; i < *argc; i++)
    {
        printf("argv[%d] = %s\n", i, *argv[i]);
    }
}
 
int main(int argc, char** argv)
{
    for (int i = 0; i < argc; i++)
    {
        printf("argv[%d] = %s\n", i, argv[i]);
    }
 
    printf("\nMaintenant la fonction:\n\n");
 
    print_args(&argc, &argv);
 
    return 0;
}
Mais en sortie je reçois ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
argv[0] = ./main
argv[1] = hello
 
Maintenant la fonction:
 
argv[0] = ./main
Segmentation fault (core dumped)
Et je n'arrive pas à comprendre pourquoi, est-ce bien de faire comme ceci ? Est-ce moi qui ai mal compris quelque chose ?

Voilà si quelqu'un pouvait me l'expliquer j'en serai vraiment reconnaissant car je n'arrive pas à trouver d'exemple sur internet qui essaie de faire pareil...

Sur ce, merci d'avance ! ^^

Edit: petites fautes de frappe et d'othographe, ohlala...