bonjour ,
je souhaite allouer un tableau a 2 dimensions via une fonction externe a main. je dois en fait allouer 2 tableau a une dimension et un a 2 dimensions.
j'y arrive parfaitement pour les 2 tableau simple mais celui a deux dimensions cela ne va pas et je commence a secher ...
ici le programme principal , coeff et moyenne sont les tableaux simple et note le tableau 2 dim.
main()
{int Netud , Nnote,*coeff;
float *moyenne , *note ;
init_tab(&*moyenne,&*coeff,&*note,&Netud, &Nnote);
affiche(moyenne,coeff,note,Netud,Nnote);
}
ici la fonction init_tab ou je demande un nombre d'etudiant que jaffecte a etud , un nombre de note que jaffecte a notes , puis jalloue dynamiquement grace a malloc les tableaux coeff et moy , et j'en fais de meme avec note.
void init_tab(float *moy,int *coeff,float *note,int *etud, int *notes)
{int nbetud,nbnote;
printf("combien y a t'il d'etudiants ?");
scanf("%d", &nbetud);
*etud = nbetud;
printf("combien y a t'il de notes a enregistrer ?");
scanf("%d", &nbnote);
*notes = nbnote;
*&moy= (float*)malloc(nbetud * sizeof (float));
*&coeff= (int*)malloc(nbnote * sizeof(int));
*¬e= (float*)malloc(nbetud * nbnote * sizeof(float));
}
le seul soucis c'est que quand on appelle la fonction affiche pour afficher les trois tableaux on voit bien que le probleme se trouve au niveau du tableau note
donc je disais mon probleme doit se situer au niveau de l'allocation dynamique pour note , ou dans son placement en paramète dans init_tab ou quand j'appelle init_tab.void affiche(float *moy,int *coeff,float *note,int etud,int notes)
{int i , j ;
/*premiere ligne du tableau*/
printf("et. | coefficients \n");
/*deuxieme ligne du tableau*/
printf(" | %d",coeff[0]);
for (i=1;i < notes;i++)
printf(" | %d",coeff[i]);
printf(" |moyennes\n");
/*lignes suivantes*/
/*numero etudiant*/
for (i=0;i<etud;i++)
{printf(" %d |",i);
/*ses notes*/
for (j=0;j<notes;j++)
printf(" %.2f |", *(note + i *notes + j));
printf("%.2f \n",moy[i]);}
}
je sèche totalement . si quelqu'un pourrait m'aider svp..
Partager