Je n'arrive pas à obtenir la valeur d'un pointeur. Je le code suivant dans C++:Obtention d'une valeur à partir du pointeur
void* Nodo::readArray(VarHash& var, string varName, int posicion, float& d)
{
//some code before...
void* res;
float num = bit.getFloatFromArray(arregloTemp); //THIS FUNCTION RETURN A FLOAT AND IT'S OK
cout << "NUMBER " << num << endl;
d = num;
res = #
return res
}
int main()
{
float d = 0.0;
void* res = n.readArray(v, "c", 0, d); //THE VALUES OF THE ARRAY ARE: {65.5, 66.5};
float* car3 = (float*)res;
cout << "RESULT_READARRAY " << *car3 << endl;
cout << "FLOAT REFERENCE: " << d << endl;
}
Le résultat de l'exécution de ce code est le suivant:
NUMÉRO 65,5 RESULT_READARRAY -1,2001
// INCORRECT IL ÊTRE COMME NUMÉRO DE RÉFÉRENCE
FLOAT : 65,5 // CORRECTNUMÉRO 66,5 RESULT_READARRAY -1,2001
// INCORRECT IL ÊTRE COMME NOMBRE
FLOAT RÉFÉRENCE: 66,5 // CORRECT
Pour une raison quelconque, quand je reçois la valeur du pointeur retourné par la fonction appelée ReadArray est incorrecte. Je passe une variable float (d) comme référence dans la même fonction juste pour vérifier que la valeur est ok, et comme vous pouvez le voir, THE FLOAT REFERENCE correspond au NUMBER. Si je déclare la variable num (array lu) comme un flottant statique, le premier RESULT_READARRAY sera 65.5, c'est correct, cependant, la valeur suivante sera la même au lieu de 66.5. Permettez-moi de vous montrer le résultat de l'exécution du code en utilisant la variable float statique:
NUMÉRO 65,5 RESULT_READARRAY 65,5
// PERFECT FLOAT RÉFÉRENCE: 65,5
// PERFECTNUMÉRO 65,5 // C'EST INCORRECT, IT
DEVRAIT ÊTRE 66,5 RESULT_READARRAY 65,5
FLOAT RÉFÉRENCE: 65,5
savez-vous comment puis-je ge t la valeur correcte renvoyée par la fonction appelée readArray()?
+1 Grande solution de contournement, que est ce que je cherchais: D Merci Mark – Eric