Bonjour à tous,

J'ai transcrit une fonction Delphi en C++ telle que
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
27
28
29
30
31
32
33
34
35
36
37
38
	//**************** Fonction initialisation segmentation ********************
 
	int InitSegmentationOk(	const unsigned int Degree, const int Speed,
							const double Start, const bool CustomOK,
							const bool BlackButtom, TPeekSegCfg CurSeg)
	{
	CurSeg.Degree = Degree;
	CurSeg.Speed = Speed;
	CurSeg.Start = Start;
	CurSeg.CustomOk = CustomOK;
	CurSeg.BlackButtom = BlackButtom;
	CurSeg.RBGStep = 256/pow((32*pow(2.0,Degree)),(1.0/3.0));
	CurSeg.NbrCalcSeg = (int)(32*pow(2.0,Degree));
	CurSeg.NbrUsedSeg = 0;
	CurSeg.Segvec = (TPeekSegment*)malloc(CurSeg.NbrCalcSeg*sizeof(TPeekSegment));
	CurSeg.CubeRGBvec = (Cube*)malloc(CurSeg.NbrCalcSeg*sizeof(Cube));
 
		for(int k=0;k< CurSeg.NbrCalcSeg;k++)
		{
		//Initialisation du vecteur de structures Segvec
		CurSeg.Segvec[k].SegNo = k+1;
		CurSeg.Segvec[k].OrdBySize = 0;
		CurSeg.Segvec[k].dEmax = 0.0;
		CurSeg.Segvec[k].Used = true;
		CurSeg.Segvec[k].Deleted = false;
		CurSeg.Segvec[k].Added = false;
		CurSeg.Segvec[k].ControlOK = false;
		CurSeg.Segvec[k].PixSize = 0;
		CurSeg.Segvec[k].Percent = 0.0;
			for(int i=0;i<3;i++)
			{
			CurSeg.Segvec[k].LChmean[i]= 0.0;
			CurSeg.Segvec[k].Labmean[i]= 0.0;
			CurSeg.Segvec[k].LChmin[i]= 0.0;
			CurSeg.Segvec[k].LChmax[i]= 0.0;
			CurSeg.Segvec[k].RGBmean[i]= 0.0;
			}
		}
Si j'appelle cette fonction par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
if (InitSegmentationOk(1,1,1.0,true,false,* CurSeg)==0)
{
}
La valeur de la structure CurSeg->NbrCalcSeg est de 64 au cours du traçage du code mais devient 1635652 à la sortie de la fonction

Quelqu'un peut-il m'expliquer ?