Bonjour, lorsque je compile mon code j'ai cette erreur :
Exception non gérée à 0x00401027 dans accelerometre.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000000.
J'ai mis en commentaire l'endroit où ça s'arrête.
Merci pour votre aide.
voici mon code :
Code:#include <stdio.h> #include <stdlib.h> # define colonne 3 int** remplir_tableau2D_dyn (int ligne) { int i, j, val=0; int **tab= NULL; /************************************* * Saisies valeurs du tableau a 2D dyn* **************************************/ for(i=0;i<ligne;i++) // L'erreur apparait sur cette ligne { for(j=0;j<colonne;j++) { printf("Donnez les valeurs de tab, val tab num %d : ",j); scanf("%d", &val); tab[i][j]=val; } } printf("\n"); return tab; } void affiche_tab_2D_dyn(int tab[][colonne], int ligne) { /******************************* * Affichage du tableau a 2D dyn* ********************************/ int i, j; for(i=0;i<ligne;i++) { for(j=0;j<colonne;j++) { printf("val tableau 2D dyn tab[i][j]= %d\t", tab[i][j]); } printf("\n"); } //Libération del a mémoire for(i=0;i<ligne;i++) { free(tab[i]); } free(tab); } int main (void) { int i, ligne; int **tab= NULL; printf("Donnez le nombre de ligne de tab: "); scanf("%d", &ligne); //printf("Donnez le nombre de colonne de tab: "); // scanf("%d", &colonne); /********************************* * Déclaration du tableau a 2D dyn* **********************************/ //tab=((int**)malloc(ligne * sizeof(*tab))); tab=((int**)malloc(ligne * sizeof(int*))); if(tab==NULL) { printf("valeur inexistante\n"); // return NULL; } for(i=0;i<ligne;i++) //tab[i]=((int*)malloc( colonne * sizeof (**tab)));//tab[i]=((int**)malloc( colonne * sizeof (**tab))); tab[i]=((int*) malloc(colonne * sizeof (int*))); if(tab[i]==NULL) { for(i=i-1; i>=0; i--) free(tab[i]); free(tab); printf("valeur inexistante\n"); } remplir_tableau2D_dyn(ligne); affiche_tab_2D_dyn(tab, ligne); while (1){}; return 0; }
-----