Bonjour,
Je vous explique mon problème, j'ai un gros programme qui est plusieurs fois amené à comparer des chaines de caractères. Actuellement , il fonctionne parfaitement et valgrind ne detecte aucune perte de mémoire ...
Le problème est que je viens de me rendre compte que le programme doit aussi pouvoir comparer des chaines de caractères sans tenir compte des majuscules. donc ma solution est de passer mes chaines de caractères en minuscule.
Pour cela , je me suis fait une petite fonction :
ensuite , si mon but est de convertir une chaine de caractères balise_temporaire en miniscule,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void MajToMin(char *mot,char *mot2) { int i; for (i=0;i<strlen(mot);i++) { *(mot2+i)=tolower(*(mot+i)); } (*(mot2+strlen(mot)))='\0'; }
je l'appelle de cette manière:
Le programme fonctionne très bien mais maintenant, valgrind me dit que 2 block mémoire n'ont pas été libérés et ce quelque soit le nombre de fois où j'utilise ma fonction MajToMin ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 balise_temporaire2=(char*)malloc(sizeof(char)*strlen(balise_temporaire)+1); MajToMin(balise_temporaire,balise_temporaire2); free(balise_temporaire); balise_temporaire=balise_temporaire2;
Merci d'avance de votre aide
Partager