Tableau dynamique impossible a remplir

baobab95

Expert
Bonsoir !
tout d'abord voici le code ayant un souci ...

dans le main j'appelle une fonction de cette maniere :
[cpp]

int** rempliAuto(int **tab, int t[26][2]);

int main()
{
int ** tab;
int t[26][2] = {0};
int a;
int i,n,j,k=0,l=1,m;

tab = (int**)malloc(26*sizeof(int*));

printf("Choisissez le mode de remplissage du tableau : \n");
printf("1: Manuel\n2: Automatique\n --> ");
scanf("%d",&a);
fflush(stdin);

switch(a)
{
case 1:
break;

case 2:
tab = rempliAuto(tab,t);
break;

default:
break;
}
return 0;
}
[/cpp]

voici maintenant le code de cette fonction :
[cpp]
int** rempliAuto(int **tab, int t[26][2])
{
int * ref;
int i,n,j,k,l=1,m, z;
int * p;

srand(time(NULL));

ref = (int*)malloc(sizeof(int));

for(i=0; i<26; i++)
{
t[0] = i;
printf("\nPassage numero : %d", i);
n = 1+(rand()%4);

printf("\n n vaut %d",n);
t[1] = n;

tab = (int*)malloc(n*sizeof(int));

for(j=0; j<n; j++)
{

p = realloc(ref,(sizeof(ref)+sizeof(int)));
do
{
z = 0;
k = 1+(rand()%104);
printf("\n k vaut %d",k);
for(m=0; m<l; m++)
{
if(k == p[m])
{
z = 1;
printf("\n k est deja util");
}
}
}
while(z == 1);

p[l-1] = k;
l++;
ref = p;
printf("\n i vaut %d et j vau %d",i,j);
tab[j] = k;

}
}
printf("\n sortie 1\n");
free(p);
free(ref);
return tab;
}[/cpp]

Deux cas s'offre à moi :
-Soit je ne met pas l'instruction tab[j] = k; , dans ce cas la fonction ne pose pas de problème, mais le programme plante dans le main lorsque je tente d'afficher les valeurs du tableau.

-Soit cette instruction est présente et le programme plante à un moment dans la fonction, généralement quand i atteint 20 21 22.

Quelqu'un aurait-il une solution à me proposer ?

Merci d'avance =)
 

abswindows7

Grand Maître
Je suis présentement en train de finir mon cours de C sharp, peut tu m'expliquer plus précisément quesque tu veut faire avec cette fonction ?
Et sa ici c'est suposé faire quoi ?
# srand(time(NULL));
#
# ref = (int*)malloc(sizeof(int));
 

baobab95

Expert
ben avec srand j'initialise le compteur aléatoire, et avec la deuxieme ligne je fais une alloc dynamique pour ref
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 060
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut