bonjour tout le monde,

Je suis un peu embêté avec un problème d'allocatin mémoire pour un tableau à 2 dimensions. En fait le problème n'est pas sur la façon d'allouer de la mémoire pour le tableau, ça je pense savoir faire, même si vous confirmer au cas où. Le problème viens du fait qu'au bout d'un moment dans mon programme certaines cases de ce tableau sont écrasés sans que je le demande.
Pour plus de précision, je n'ai pas effectué de libération de la mémoire sur ce tableau.
voici le code :

char **bots; //déclarer en global bien sur
bots = (char **)malloc(size * sizeof(*bots)); //pour l'allocation mémoire de la 1ère dimension
.....
bots[i] = malloc(sizeof(char)*strlen(tmp)); //pour la 2ème dimension
//l'allocation (2è dimension) se fait au fur et à mesure dans une boucle while
et maintenant l'affichage que j'obtiens :
//lors du premier appel à une fonction
bots[0] = googlebot
bots[1] = mediapartners-google
bots[2] = googlebot
bots[3] = mediapartners-google
bots[4] = msnbot
bots[5] = voilabot
bots[6] = gigabot
bots[7] = seekbot
bots[8] = newsgator
bots[9] = snapbot
bots[10] = ebiness
bots[11] = biglotron
bots[12] = henrilerobotmirago
************************************
************************************
//lors du second appel à cette meme fonction
bots[0] = lj611675.inktomisearch.com
bots[0] = lj611675.inktomisearch.com
bots[0] = lj611675.inktomisearch.com
bots[0] = lj611675.inktomisearch.com
bots[0] = lj611675.inktomisearch.com
Pour précision, la fonction appelée ne modifie pas le tableau, il ne fait que le consulter. Hors, entre 2 consultations le compilateur s'est arrangé pour modifier les valeurs aux adresses allouées pour le tableau.
Comment puis-je faire pour être sûr que le bloc mémoire du tableau ne soit pas modifié ?

Merci d'avance à tous.