2 réponses
supertomtom
Messages postés
316
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
28 novembre 2010
83
6 nov. 2010 à 11:11
6 nov. 2010 à 11:11
Regarde aussi quand tu clique sur l erreur sa te met la ligne. Mais dans la fnction mqin tu ecrit int i; et apres i=0
Essai directemeny de faire : int i=0;
Essai directemeny de faire : int i=0;
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
6 nov. 2010 à 12:09
6 nov. 2010 à 12:09
bonjour,
beaucoup d'erreurs,
tu déclares un tableau de 100 caractères: char T[100].
ce que tu souhaites est un tableau de 5 chaines de caractéres.
donc char **T ou char *T[n] si tu veux fixer la taille. (précises le nom de ta macro, plutot que n, mets NB_CHAINES par exemple).
ensuite, tu peux faire tes allocations dynamiques.
Ta fonction tri devrait avoir en paramètres des char *, voire comme tu l'as écrit des char **. (ne pas oublier que les paramètres en C sont passés par valeur et non par référence).
bon courage
beaucoup d'erreurs,
tu déclares un tableau de 100 caractères: char T[100].
ce que tu souhaites est un tableau de 5 chaines de caractéres.
donc char **T ou char *T[n] si tu veux fixer la taille. (précises le nom de ta macro, plutot que n, mets NB_CHAINES par exemple).
ensuite, tu peux faire tes allocations dynamiques.
Ta fonction tri devrait avoir en paramètres des char *, voire comme tu l'as écrit des char **. (ne pas oublier que les paramètres en C sont passés par valeur et non par référence).
bon courage
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
6 nov. 2010 à 13:15
6 nov. 2010 à 13:15
pour un tableau 2 dimensions, on doit allouer de la mémoire pour les 2 dimensions, donc:
pour accéder à une chaine, tu feras T[x] qui te ''renverras' un char* , par exemple pour
t'imprimera la première chaine de caractères.
char **T; //un pointeur de pointeur T=(char **) malloc(NB_CHAINES*sizeof(char *)); /* tu alloues en mémoire un espace contigu pour NB_CHAINES pointeurs de caractéres*/ for(int i=0;i!=NB_CHAINES;i++) T[i]=(char *)malloc (100 * sizeof(char)); /* tu alloues en mémoire un ensemble de NB_CHAINES espaces contigus de 100 caractéres et l'adresse de chacun de ces espaces est placée dans le tableau T de T[0] à T[NB_CHAINES-1]*/
pour accéder à une chaine, tu feras T[x] qui te ''renverras' un char* , par exemple pour
printf("%s",T[0]);
t'imprimera la première chaine de caractères.
oh la la merci merci !!!!!! :D alors ca compile tout ca tout ca, mais par contre mon tri marche pas (j'ai fait en sorte d'afficher les chaines a la fin mais il les laisse dans le même ordre...) est-ce que la méthode de tri pour les entiers marche de la même façon pour les char ?
en tout cas merci beaucoup !!!
en tout cas merci beaucoup !!!
6 nov. 2010 à 11:20
30 juil. 2012 à 14:35