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 : 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;
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 : 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);
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 !