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 :
Code :
- 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 :
- 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.