Bonjour à tous, voila je suis bien embeter car j'ai une erreur dans mon programme mais je n'arrive pas à trouver ou elle se situe (du moins à quel moment :\ )

Voici ma fonction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
char** cle_complete(char** cle_final) //Cree tout les types de clé possible
{
 int x,i,j,l,m;
 char** aux=malloc(sizeof(char*));
 i=0;
 l=0;
 for(i=0;i<nb_car.nb[0];i++)
 {
   j=0;
   for(j=0;j<nb_car.nb[1];j++)
   {
	 x=0;
	 for(x=0;x<nb_car.nb[2];x++)
	 {
	   aux=realloc(aux,sizeof(char*)*(l+1));
	   for(m=0;m<3;m++)
		{
		   aux[l] = realloc(aux,sizeof(char)*(m));
		}
	   aux[l][0]=cle_final[0][i];
	   aux[l][1]=cle_final[1][j];
	   aux[l][2]=cle_final[2][x];
	   l++;
	 }
   }
 }
 return aux;
}
Alors cle_final est un tableau contenant un tableau de caractères et le but est de créer tout les mots possibles que je vais mettre dans mon aux, je n'aurai jamais plus de 3 occurences dans aux donc le programme est bon (du moins dans l'idée)
Voila donc quand j'execute le programme, il s'execute bien, rempli mon tableau aux et une fois que j'arrive tout à la fin de mes boucles, que tout le boulot est fait j'ai le droit à un segmentation fault

voici un exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
C1[0]:aib
C1[1]:eak
C1[2]:Npm
1 aeN
2 aep
3 aem
4 aaN
5 aap
6 aam
7 akN
8 akp
9 akm
10 ieN
11 iep
12 iem
13 iaN
14 iap
15 iam
16 ikN
17 ikp
18 ikm
19 beN
20 bep
21 bem
22 baN
23 bap
24 bam
25 bkN
26 bkp
27 bkm
Segmentation fault (core dumped)
Du coup c'est assez embetant car ça me bloque :\

Avez-vous une idée du pourquoi de cette erreur?

Merci d'avance de vos prochaines réponses