Bonsoir à tous,
Je désire linéariser une matrice (par le biais d'une fonction qui prend en paramètre le tableau multidimensionnel, son nombre de ligne et de colonne) en parcourant ses valeurs et en les stockant dans un tableau 1D que j'alloue dans cette fonction (c'est aussi ce tableau que je renvoi en fin de fonction).
Mes traitement dans les autres fonctions se déroulent bien cependant mon tableau crée dans cette fonction ne peut stocker au maximum 4 valeurs (d'ou mon problème d'allocation mais en initialisant mon tableau autrement (int tab[40]le problème reste le même.
Dans le code fourni, seul une matrice 2D à une ligne et N colonne peut être traitée.
Merci d'avance pour vos conseils
Et dans mon main (ne tenez pas compte des fonctions précédentes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 int * convert2D(int ** tab,int lig, int col){ int *tabaux; int j,aux; if(lig == 1){ int i=0; size_t n = col; tabaux= (int*) malloc (sizeof (int) * n); printf("taille %d : \n", sizeof(tabaux)); for(j=0;j<col;j++) { tabaux[j] =tab[i][j]; } } return (tabaux); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 lig= 1; puts("Saisir la premiere matrice"); puts("Nombre de case ?"); scanf("%d",&col); tab = allocMem( lig,col); tab = remplissageTab(tab, lig, col); puts("Saisir la deuxieme matrice"); tab2 = allocMem( lig,col); tab2 = remplissageTab(tab2, lig, col); //Tout fonctionne plus haut, et convert2D renvoi 4 valeurs systematiquement tab1D = convert2D(tab, lig, col);
Partager