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 :
Ensuite dans mon programme, je ne connais pas à l'avance le volume de donnée que je vais avoir à mettre dans mes structures.
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 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;
Je commence donc par faire des malloc sur mes pointeurs de structures, puis, lorsque je rempli ces structures, je fais des realloc.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Alors, est ce qu'il y aurait une technique plus simple et moins risquée en C++?
Merci de votre aide !
Partager