Besoin d'aide svp:0 erreur,pourtant il ne compile pas!!

mistersof Messages postés 2 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 15 juillet 2010 - 14 juil. 2010 à 14:23
mistersof Messages postés 2 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 15 juillet 2010 - 15 juil. 2010 à 01:32
#include <stdio.h>
#include <stdlib.h>


void alloc_mat(int** mat,int nl,int nc)
{
int i;
mat=(int**)malloc(nl*sizeof(int*));
for(i=0;i<=nl;i++)
mat[i]=(int*)malloc(nc*sizeof(int));
}


void saisie_mat(int** M,int nl,int nc)
{
int i,j;

for(i=0;i<nl;i++)
for(j=0;j<nc;j++)
{
printf("\n Entrez l'élémnt d'indice %d , %d : ",i,j);
scanf("%d",&M[i][j]);
}
}

void Affichage_mat(int** M,int nl,int nc)
{
int i,j;

for(i=0;i<nl;i++)
{
for(j=0;j<nc;j++)
printf("%d\t",M[i][j]);
printf("\n");
}

}


void main()
{
int** mat;
int nl=3,nc=3;
alloc_mat(mat,nl,nc);
saisie_mat(mat,nl,nc);
Affichage_mat(mat,nl,nc);

}


ce simple code me génère une erreur quand je le compile pourtant il n'y a pas d'erreur
l'erreur en question :General protection exception.
si quelqu'un connait la raison il m'aidera beacoup.
merci !!

2 réponses

nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
14 juil. 2010 à 19:37
Salut,


ton code est mal fait, tu ferais des memory leaks meme si ton code roulait.

Fais attention aux arguments ( a leur signature) et dis toi que tu alloues un tableau a 2D, alors crees toi une fonction pour ca , ce qui serait plus simple pour toi. Une fonction du style:

void** creerTableau2D(const unsigned tailleElement, const unsigned nombreDeLignes, const unsigned nombreDeColonnes);

et bien entendu une fonction de destruction :

void detruireTableau2D(void **tableau2D, const unsigned nombreDeLignes);

Cela evitera ta fonction alloc_mat qui est mal codee, et serais plus clair un peu dans ton code:

int** mat = (int**)creerTableau2D(sizeof(int), 25, 50);




//plus tard
detruireTableau2D(mat,25);


Le reste des autres fonctions ne me cause pas de pb, juste a faire attention.

bonne continuation.

http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
0
mistersof Messages postés 2 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 15 juillet 2010
15 juil. 2010 à 01:32
merci ça ma donner des idées.
merci encore .
0
Rejoignez-nous