我有问题从指针获取值。我在C++下面的代码:从指针获得价值
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;
}
运行这段代码的结果是这样的:
NUMBER 65.5 RESULT_READARRAY -1.2001
//不正确应该像NUMBER
FLOAT参考:65.5 //正确NUMBER 66.5 RESULT_READARRAY -1.2001
//不正确应该像NUMBER
FLOAT REFERENCE:66.5 // CORRECT
由于某些原因,当我得到由名为readArray的函数返回的指针值不正确时。我在同一个函数中传递一个浮点变量(d)作为参考,以验证该值是否正确,正如您所见,FLOAT REFERENCE与NUMBER匹配。如果我将变量num(读数组)声明为静态浮点数,则第一个RESULT_READARRAY将是65.5,这是正确的,但是,下一个值将是相同的,而不是66.5。让我告诉你使用静态浮动变量运行代码的结果:
NUMBER 65.5 RESULT_READARRAY 65.5
// PERFECT FLOAT参考:65.5
//完美NUMBER 65.5 //这是错误的时候,
应该是66.5 RESULT_READARRAY 65.5
FLOAT参考:65.5
你知道我怎么能GE t由readArray()函数返回的正确值?
+1大的解决方法,即是我在找的东西:D 感谢马克 – Eric 2010-05-04 16:46:42