Вывод значения GLfloat дает правильное значение, но сохранение его в другой переменной и вывод этой переменной дает неправильное значение

Я работаю над проектом с использованием freeglut и glew, хотя я думаю, что это не имеет отношения к моей проблеме. Эти первые строки выводят значения, которые я ожидаю. (-1, -1). Примечание: mikesVertices [0] .x и mikesVertices [0] .y относятся к типу GLfloat.

std::cout << "(" << mikesVertices[0].x << ", " << mikesVertices[0].y << ")" << endl;

Тем не менее, эти две строки (которые идут сразу после ..

GLfloat x = mikesVertices[0].x;
std::cout << "x: " << x << endl;

выводит неверное значение для х. (1.92749e-039)

Причина, по которой я пытаюсь это сделать, заключается в том, что я хочу передать значения в функцию, но функция также получает неправильные значения. Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: mikesVertices является указателем на объект vec2 (написанный Ангелом, я показал части из него, которые я считаю необходимыми)

struct vec2 {

GLfloat  x;
GLfloat  y;

//
//  --- Constructors and Destructors ---
//

vec2( GLfloat s = GLfloat(0.0) ) :
x(s), y(s) {}

vec2( GLfloat x, GLfloat y ) :
x(x), y(y) {}

vec2( const vec2& v )
{ x = v.x;  y = v.y;  }

//
//  --- Insertion and Extraction Operators ---
//

friend std::ostream& operator << ( std::ostream& os, const vec2& v ) {
return os << "( " << v.x << ", " << v.y <<  " )";
}

friend std::istream& operator >> ( std::istream& is, vec2& v )
{ return is >> v.x >> v.y ; }

//
//  --- Conversion Operators ---
//

operator const GLfloat* () const
{ return static_cast<const GLfloat*>( &x ); }

operator GLfloat* ()
{ return static_cast<GLfloat*>( &x ); }

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]