"Segmentation fault" lorsque je passe un pointeur vers "**argv" en paramètre
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:
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:
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...