Параметр C++ превращается в мусор, даже если он вызывается с константами.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Параметр C++ превращается в мусор, даже если он вызывается с константами.

Сообщение Anonymous »

КАЖЕТСЯ, СЕЙЧАС РАБОТАЕТ, СПАСИБО.

Моя проблема в том, что в одной из функций теряются параметры.< /p>

Я использую Code::Blocks с компилятором GNU GCC в Windows 7.

Хорошо, у меня есть функция, принимающая 6 параметров GLfloat.

void ProMesh::gen_quad_world(GLfloat _w,GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2);


Как видите, это часть класса ProMesh.
В ProMesh у меня есть функция инициализатора, которая вызывает проблемную функцию gen_quad_world.
void ProMesh::initialize(GLfloat _w, GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2)
{
numverts = 18;
numtexcoords = 12;
vert_array = NULL;
tex_array = NULL;
id = glGenLists(1);
gen_quad_world(_w,_h,_x1,_y1,_x2,_y2);
}


Как видите, он просто передает параметры в gen_quad_world.

Пока все в порядке?< /p>

Независимо от значений _w и _h, gen_quad_world вместо этого получает глупые длинные числа.

Пример:
ЗВОНЮ

gen_quad_world(1,2,345,4,5,6);


Я ПОЛУЧАЮ
_w: 3.7648e-039
_h: 7.4044e+031
_x1: 345
_y1: 4
_x2: 5
_y2: 6
в функции gen_quad_world. Как это может произойти? Это очень странно. Кроме того, иногда он работает правильно, когда я прохожу его построчно в режиме отладки.

Что еще больше усложняет ситуацию, у меня есть почти идентичная функция под названием gen_quad_local, которая требует того же самого параметры. если я использую его вместо него, то все работает нормально.

-------------------- -----чтобы увидеть функцию gen_quad_world, посмотрите ниже--------------------

void ProMesh::gen_quad_world(GLfloat _w,GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2)
{
std::ofstream myfile("gen_quad_world.txt");
myfile

Подробнее здесь: https://stackoverflow.com/questions/115 ... -constants
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»