
Envoyé par
olivier857
Serait t'il possible de m'écrire le code avec malloc(), pour que je comprenne comment ca marche. Désolé je suis débutant. J'essaye d'utiliser malloc mais je n'y arrive pas.
Description des mécanismes d'allocation dynamique de mémoire en langage C
J'ai un peu reflechi, et meme si la norme assure que argc et argv sont accessibles en ecriture, je ne sais pas si argv[] est alloue ou non par le symbole _start (celui qui appelle main() au lancement du programme). Donc je ne sais pas si faire un malloc() sur argv va entrainer une fuite memoire ou non...
Dans le doute, je te conseille de faire:
int my_argc; char *my_argv[10];
puis envoyer my_argc et my_argv a post() (apres avoir donne une valeur, evidemment).
Si le prototype de main est :
ou
int main (int nb_arg, char **arg_value)
rien ne t'empêche d'utiliser argc et argv comme nom de variable.
Ne pas oublier que argv est un tableau de argc+1 éléments avec le dernier élément à NULL.
Si tu veux te passer le l'allocation dynamique :
1 2 3 4 5 6 7 8 9
| #include <stdlib.h>
int main (void)
{
char argv[4][5] = {"arg1", "arg2", "arg3", NULL};
int argc = sizeof (argv) / sizeof (*argv) - 1;
[...]
return 0;
} |
Partager