c++ - Variable changes value when passed to function? -
i feel idiot. when pass variable function results in strange output 6.2+e003 instead of value variable holds. doing wrong?
the x in main , x in function different?
main:
int x, y; while(system.windowopen()) { x++; y++; bg.draw2d(); bob.think(x, y); riley.think(x, y); system.render(0); }
class method:
void organism::think(double x, double y) { std::cout << "x: " << x << "\n"; std::vector<double> food; food.push_back(x); food.push_back(y); std::cout << "vector: " << food[0] << " " << food[1] << "\n"; std::vector<double> path; if(refresh.istime()) { std::cout << "\nfood vector: \n" << food[0] << "\n" << food[1] << "\n"; path = brian.getoutput(food); organism.translate2d(path[0], path[1]); if(organism.isoffscreen2d(resx, resy) == 'l' ) organism.setpos2d(resx, organism.gety()); if(organism.isoffscreen2d(resx, resy) == 'r') organism.setpos2d(0, organism.gety()); if(organism.isoffscreen2d(resx, resy) == 't') organism.setpos2d(organism.getx(), resy); if(organism.isoffscreen2d(resx, resy) == 'b') organism.setpos2d(organism.getx(), 0); }; font.drawnumber2d(x, 50, 50); font.drawnumber2d(y, 50, 100); organism.draw2d(); }
both x
, y
uninitialized here:
int x, y;
so can hold value, , reading them undefined behaviour. should initialize them:
int x = 0 int y = 0;
Comments
Post a Comment