【发布时间】:2010-05-05 00:38:25
【问题描述】:
我在从指针中获取值时遇到问题。我在 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
//不正确的应该是数字
浮点参考:65.5 //正确NUMBER 66.5 RESULT_READARRAY -1.2001
//不正确的应该是数字
浮点参考:66.5 //正确
由于某种原因,当我得到调用 readArray 的函数返回的指针值不正确时。我在同一个函数中传递了一个浮点变量(d)作为参考,只是为了验证该值是否正常,如您所见,浮点参考与数字匹配。如果我将变量 num(read array) 声明为静态浮点数,则第一个 RESULT_READARRAY 将为 65.5,这是正确的,但是,下一个值将是相同的,而不是 66.5。让我向您展示使用静态浮点变量运行代码的结果:
NUMBER 65.5 RESULT_READARRAY 65.5
//完美的浮点参考:65.5
//¨完美NUMBER 65.5 //这是不正确的,它
应该是 66.5 RESULT_READARRAY 65.5
浮点参考:65.5
你知道我怎样才能得到 readArray() 函数返回的正确值吗?
【问题讨论】: