Type de donnée abstrait : matrice
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 :
http://img7.hostingpics.net/pics/785964MATRIX.png
Voici ma déclaration du type :
Code:
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; |
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").
Si par exemple je fais ça...
Code:
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");
} |
...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.
Merci d'avance.