Bonjour
Un petit souçi d'allacation de mémoire:
J'ai défini une structure censé représenter un élément d'une matrice el_mat
typedef struct EL_MAT
{
string name; //name sert à représenter une valeur symbolique corespondant à value
float value; //valeur réelle de l'élément de la matrice
int mark;
}el_mat;
Pour créer ma matrice, j'utilise donc un double pointeur sur cet structure el_mat
et j'ai alloué la mémoire avec:
Mat = (el_mat **) malloc (size_Mat * sizeof (el_mat *));
for (row = 0; row < size_Mat; row++)
Mat[row] = (el_mat *) malloc (size_Mat * sizeof (el_mat));
Or du fait du type string dans ma structure sizeof(el_mat) ne renvoit pas une info correct et donc Mat est à l'étroit. J'arrive bien à remplir correctement les champs mark et value mais pour ce qui est de name, après avoir mis tout les Mat[][].name à "A" ,je m'aperçois que finalement une valeur sur deux est à A, l'autre est à 0. J'ai bien testé en remplaçant le string par char et la pas de problème, j'ai bien A dans le champ name pour toute les éléments de ma matrice. J'en conclue donc que l'allocation mémoire ne s'est pas faite correctement. Et je comprends bien pourquoi mais comment y remedier ????
Si certains d'entres vous ont des idées....