Debutant - demande de conseil
Bonjour,
Je suis débutant en language C et c++, et j'aimerais savoir si j'utilise la bonne technique pour un programme.
Je développe sur une application C++(MFC), mais l'application existante a été développé en majorité en C pur. Il m'est donc difficile de reprendre du code c++.
voila ce que j'ai fait :
Un pointeur de structure qui contient un pointeur sur une autre structure qui contient également un pointeur sur une autre structure.
j'ai donc ceci :
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
|
typedef struct tab_plat_gout
{
char code_plat[8+1];
char lib_plat[25+1];
BOOL selected;
}st_plat_gout;
typedef struct tab_gout
{
char code_class_gout[2+1];
char code_gout[4+1];
char lib_gout[25+1];
st_plat_gout *m_pListePlatGout;
BOOL selected;
int nbr_plat;
}st_gout;
typedef struct tab_classe_gout
{
char code_class_gout[2+1];
char lib_class_gout[25+1];
st_gout *m_pListeGout;
int nbr_gout;
int indice;
}st_class_gout; |
Ensuite dans mon programme, je ne connais pas à l'avance le volume de donnée que je vais avoir à mettre dans mes structures.
Je commence donc par faire des malloc sur mes pointeurs de structures, puis, lorsque je rempli ces structures, je fais des realloc.
Code:
1 2 3 4 5 6 7
|
m_pClassGout_conso = (st_class_gout *)malloc(sizeof(st_class_gout) * ((result / 48 ) + 1)); //result est la taille d'un fichier et 48 le nbr de ligne
m_pClassGout_conso[0].m_pListeGout = (st_gout *)malloc(sizeof(st_gout) * 4);
//et dans une boucle, je réalloc
m_pClassGout_conso[indice_class_gout].m_pListeGout = (st_gout *)realloc(m_pClassGout_conso[indice_class_gout].m_pListeGout,sizeof(st_gout) * 4); |
J'imagine que certains vont prendre peur en voyant ça !!!! Surtout que j'ai énormément de bugs de pointeur que je n'arrive pas à résoudre.
Alors, est ce qu'il y aurait une technique plus simple et moins risquée en C++?
Merci de votre aide !