Pb de fonction qui retourne un tableau de int
Bonjour à tous,
J'ai un problème avec une fonction que j'ai développé. La fonction prend un int * et un int en paramètre et crée un tableau de la taille précisée :
Code:
1 2 3 4 5 6 7 8
| void mk_tab(int *t,int n) {
t = (int *)malloc(n*sizeof(int));
int i;
for (i=0; i<n; i++) t[i]=i;
} |
Sur le même principe, j'ai une fonction d'affichage :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| void visu_tab(int *t, int n) {
int i;
printf("{ ");
for (i=0; i<n; i++)
{printf("%d ",t[i]);}
printf("}\n");
} |
Dans le main(), je procède aux appels ci-dessous :
Code:
1 2 3 4 5 6 7 8
| int *t;
int i,j;
for (j=1; j<10; j++) {
mk_tab(t,j);
visu_tab(t,j);
} |
Je m'attends à avoir en sortie :
Code:
1 2 3 4 5 6 7 8 9
| { 0 }
{ 0 1 }
{ 0 1 2 }
{ 0 1 2 3 }
{ 0 1 2 3 4 }
{ 0 1 2 3 4 5 }
{ 0 1 2 3 4 5 6 }
{ 0 1 2 3 4 5 6 7 }
{ 0 1 2 3 4 5 6 7 8 } |
Or, j'ai des valeurs complètement farfelues :
Code:
1 2 3 4 5 6 7 8 9
| { -1 }
{ -1 2088999640 }
{ -1 2088999640 2088857728 }
{ -1 2088999640 2088857728 0 }
{ -1 2088999640 2088857728 0 0 }
{ -1 2088999640 2088857728 0 0 0 }
{ -1 2088999640 2088857728 0 0 0 4198944 }
{ -1 2088999640 2088857728 0 0 0 4198944 0 }
{ -1 2088999640 2088857728 0 0 0 4198944 0 2020893505 } |
A première vue, ça pue le débordement mémoire à plein nez, mais je n'arrive pas à en trouver l'explication. Quelqu'un a une idée?
PS : Je développe sous Dev-C++