# C et C++ > Outils pour C & C++ > Analyse de code >  [linux][valgrind] Au secours :{ Je comprends pas bien ce que je peux faire pour amliorer la situation :{

## hurukan

Je me prends la tte  utiliser valgrind qui semble tre un bon outil pour dtecter des soucis "taquins" dans des instructions crites en C.

J'observe des bizarreries lors de l'excution de mon programme qui met en oeuvre le multi-threading: ce sont des "artefacts" affichs  l'cran qui me font dire qu'il doit y avoir "des effets de bord" lis  des crasses
laisses en mmoire et qui sont lues et affiches de manire toute  fait "alatoires" sans forcmment faire planter mon application.

J'ai russi  virer toutes les erreurs lies  des "invalid write/read" ce qui est dj trs sympa... par contre...

L o je bloque ce sont les messages de ce type:



```

```

Bon je sais je suis assez "lenient" concernant l'initialisation de pointeurs dont je sais qu'ils vont prendre une valeur qqs instructions plus loin dans le programme.
Voici les extraits de la "librairie" linkedlist qui est cense faire la gestion de listes doublement chanes... c'est lc_add() qui pose soucis, en gnral (80% des erreurs du type Conditional jump or move gna gna gna value(s) sont lies  la fonction lc_add() )


```

```



```

```

Je me demande pourquoi valgrind m'indique que les "branchements conditionnels dpendent d'une valeur non initialise" alors que normalement, et quand je dbugge je le vrifie, les branchements conditionnels 
comparent des valeurs qui ont t initialises en amont dans le programme (???) et elles sont quasiment jamais  NULL sauf quand j'oublie d'utiliser lc_init() ou un initialisateur particulier...

----------


## hurukan

Bon !!

Voil ce que j'ai fait pour supprimer ce type de messages...



```

```

...pff :{
Ceci en utilisant calloc() au lieu de malloc()

----------

