LANGUAGE C : RANGEMENT D'UN TEXTE DANS UN TABLEAU DYNAMIQUE 2D
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 2009
-
20 mars 2008 à 12:19
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012
-
20 mars 2008 à 13:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 20 mars 2008 à 13:05
Cette source n'apporte que peu d'interet. Cela ressemble plus à un exercise personnel qu'autre chose. Elle sera donc supprimée dans quelques jours.
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 20 mars 2008 à 12:19
Bonjour,
Voici quelques commentaires rapides
1) Initié ??? c'est un peu beaucoup !!!
2) Points anormaux constatés rapidement :
ligne 23 : int main(void)
Il manque le "return valeur" de la fonction principale.
ligne 50 : if (copie[cmpt+i] == ' ')
"copie[i]" est suffisant.
ligne 70 : while (x 0 && stop 0)
"stop" n'est pas initialisé avant le traitement.
ligne 72 : if (copie[cmpt+i] != ' ')
On dépasse la fin de la chaîne ("i" parcourt la chaîne).
ligne 78 : stop = 1; // On stop la boucle lorsqu'il y'a un espace
mais "stop" ne repasse jamais à 0.
ligne 84 : texte[y] = (char*) malloc(sizeof(char)*cmpt);
Si on veut pouvoir manipuler facilement les mots extraits il vaudrait mieux prévoir (et ajouter) le 0 terminateur.
"texte" n'est pas libérer.
Cela ne fonctionne pas correctement s'il y a plusieurs espaces entre les mots ou aux extrémités de la saisie.
...
3) J'ai quand même voulu le faire tourner (Visual C++ 6.0) --> Erreurs à l'exécution !
20 mars 2008 à 13:05
20 mars 2008 à 12:19
Voici quelques commentaires rapides
1) Initié ??? c'est un peu beaucoup !!!
2) Points anormaux constatés rapidement :
ligne 23 : int main(void)
Il manque le "return valeur" de la fonction principale.
ligne 50 : if (copie[cmpt+i] == ' ')
"copie[i]" est suffisant.
ligne 70 : while (x 0 && stop 0)
"stop" n'est pas initialisé avant le traitement.
ligne 72 : if (copie[cmpt+i] != ' ')
On dépasse la fin de la chaîne ("i" parcourt la chaîne).
ligne 78 : stop = 1; // On stop la boucle lorsqu'il y'a un espace
mais "stop" ne repasse jamais à 0.
ligne 84 : texte[y] = (char*) malloc(sizeof(char)*cmpt);
Si on veut pouvoir manipuler facilement les mots extraits il vaudrait mieux prévoir (et ajouter) le 0 terminateur.
"texte" n'est pas libérer.
Cela ne fonctionne pas correctement s'il y a plusieurs espaces entre les mots ou aux extrémités de la saisie.
...
3) J'ai quand même voulu le faire tourner (Visual C++ 6.0) --> Erreurs à l'exécution !