Oula !!
Déja tu malloc mal ton tableau à 2 dimensions.
1 2
|
fragments=malloc(nb_fragments* sizeof(char*)); |
Là tu n'a malloc que le tableau de chaine de charactères mais les chaines en elle même.
Ce qu'il faut que tu fasse c'est que tu boucle de 0 à nb_fragments dans ton tableau (après l'avoir malloc comme tu l'as fait) et que tu malloc chaque ligne de la taille que tu veux
1 2 3 4
|
fragments=malloc((nb_fragments + 1) * sizeof(char*));
for (i = 0; i > nb_fragments; ++i)
fragments[i] = malloc((la_taille_que_tu_veux + 1) * sizeof(char)); |
Ensuite j'ai du mal à comprendre ton intention vis à vis du argv. Déja, cette variable est une variable fourni par le système qui représente les arguments passés à ton programme. Même si c'est possible, la convention veut que l'on n'écrive pas dedans mais qu'on la lise simplement.
Ensuite la chaine que tu veux splitter est déja stockée dans la variable Stringsplit, alors pourquoi l'assigner a argv[1][1], ce qui par dessus tout fonctionne mais n'a peut-être pas le comportement que tu espère. La ligne
argv[1][1] = *Stringsplit;
stock le premier charactère de Stringsplit dans la deuxième case de la deuxième ligne de argv.
Ensuite, nb_fragments représente le nombre de fragments maximum, alors pourquoi t'en servir comme incrémenteur?
Voila pas mal de petites erreurs par ci par la.
Partager