Bonjour,
Dans le cadre d'un projet de programmation en langage C, je dois définir le type de donnée abstrait "Matrix" pour pouvoir manipuler des matrices chainées. Voici le schéma d'une matrice 2*2 :
Voici ma déclaration du type :
Le problème c'est que je n'arrive même pas à accéder à la valeur d'une case de la matrice ("value" dans la structure "cellElement").
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 typedef struct cellElem { int row; int col; float value; struct cellElem* nextCol; struct cellElem* nextRow; }cellElement; typedef struct colElem { int colN; struct colElem* nextCol; struct colElem* prevCol; cellElement* col; }colElement; typedef struct rowElem { int rowN; struct rowElem* nextRow; struct rowElem* prevRow; cellElement* row; }rowElement; typedef struct { int col; int row; colElement* cols; rowElement* rows; }matrix; typedef matrix* Matrix;
Si par exemple je fais ça...
...le programme compile mais plante à l'exécution. Je dois donc avoir une erreur dans la déclaration du type ou dans le main. Je précise que je suis débutant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int main(int argc, char* argv[]) { Matrix M; M=(Matrix)malloc(sizeof(matrix)); M->cols->col->value=5.; printf("%f", M->cols->col->value); system("PAUSE"); }
Merci d'avance.
Partager