Well, I decided it to do another way. Instead of using 1 sprite, setting all its parameters and then then doing a SpritesVector.push_back(CurSprite); I decided to just resize the vector by one then set all the parameters of that sprite in the vector. It fixes the problem because I am not dealing with the same sprite that seems to be holding memory from previous images, but still does not resolve the issues with the sprite not changing sizes when a new image is loaded.