-
[MFC] Pb de pointeur
Salut,
Donc en fait j'ai un buffer dont je voudrai récupérer les valeur 4 à 4, c'est à dire faire des sauts afin de récupérer les octets par paquets de 4. J'utilise cette méthode:
// Variables
BYTE BufferReceive1[810];
ULONG SizeReceive1;
char valeur[200];
PBYTE pVal = BufferReceive1 + 4; // en sachant que les 4 premiers ne m'interresse pas donc je les saute
BYTE Vals[4];
LONG Moy = 0;
ULONG Size = 0;
ULONG j = 0;
// Code
Size = SizeReceive1/sizeof(ULONG);
for (j = 0; j<Size; j++)
{
Vals[0] = pVal[3];
Vals[1] = pVal[2];
Vals[2] = pVal[1];
Vals[3] = pVal[0];
Moy += *((PLONG)Vals);
pVal += sizeof(LONG);
}
Moy /= Size;
sprintf(valeur,"%d mA", Moy);
:arrow: Est-ce que quelqu'un y voit une erreur ?
Merci :cry:
-
Salut,
a mon avis, il n'y a pas de problem grave, sauf
sprintf(valeur,"%ld mA", Moy);
Pour imprimé (U)LONG est meilleur utiliser %ld.
Je l'ai essaye avec MSVC 6.0. En fait, ou est le problem ?!
Fredy
-
mon probleme se situe au niveau de
Moy += *((PLONG)Vals);
est-ce que ça prend la valeur qui est dans pVal pour faire la moyenne ?
-
La premùière fois que je passe dans la boucle il me renvoie
0xfffffe71 sur Moy ce qui est logique mais la deuxiéme il devrai me renvoyer 1FFFFFCE2 car la 2eme valeur est la même et il me renvoi FFFFFCE2 donc je pencherai pour le type de Moy
-
En fait l'erreur se produit quand je divise Moy par Size il me renvoie un nombre abérant
-
Pb résolu :D
y suffisait juste de changer le type de Moy en Long :lol:
merci quand meme pour l'aide