je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre .
j arrive a compiler sous dev-cpp mai lors de l execution j ai cette erreur qui apparait :
L'instruction à "0*0040148a" emploie l adresse mémoire "0*00000000".La mémoire ne peut pas etre"read".
cliquez sur OK pour terminer le programme.
cliquez sur Annuler pour déboguer le programme
je sai pas d ou ça vien
je vous envoie le programme : si vous pouviez m aider ça m arrnagerai enormement ...sinon j essaierai sous unix a la rentrée ...merci d avance
#include<stdio.h>
#include<stdlib.h>
struct matrice {
int dim1;
int dim2;
int type;
double **tab;
};
void creation (struct matrice M)
{
int i,j;
printf("creation d'une matrice!!!!\n");
printf("entrer la 1e dimension=");
scanf("%d",&M.dim1);
printf("entrer la 2e dimension=");
scanf("%d",&M.dim2);
printf("entrer le type de la matrice=\n");
printf("1-matrice pleine\n");
printf("2-matrice triangulaire inférieure\n");
printf("3-matrice triangulaire supérieure\n");
scanf("%d",&M.type);
if(M.type==1){
M.tab=(double **)malloc(M.dim1*sizeof(double *));
if(M.tab==NULL)printf("echec allocation mémoire\n");
for(i=0;i<M.dim1;i++)
{
M.tab[i]=(double *)malloc(M.dim2*sizeof(double));
if(M.tab[i]==NULL)
{for(j=0;j<i;j++){
free(M.tab[j]);
printf("echec allocation mémoire\n");
}
}
}
printf("chiffre de la matrice??");
for(i=0;i<M.dim2;i++){
printf("%d e ligne\n",i);
for(j=0;j<M.dim1;j++)scanf("%lf",&M.tab[i][j]);
}
}
}
void affichage(struct matrice M)
{
int i,j;
for(i=0;i<M.dim2;i++){
for(j=0;j<M.dim1;j++){printf("%lf",M.tab[i][j]);}
printf("\n");
}
}
main()
{
struct matrice M1;
creation(M1);
affichage(M1);
system("pause");
}