So, I'm curious about this thing I can't figure out.
I'm creating some new objects and passing them to a function which stores them in a std::stack.
However, when i want to delete them - they do not actually get deleted, and as such, memory usage will proceed to climb "forever" with my test loop.
Why?
bool StateMachine::changeState(BaseState *state) {
    if (state == nullptr) {
        delete states.top();
        states.pop();
        if (states.size() == 0) {
            return false;
        }
    } else if (state != states.top()) {
        states.push(state);
    }
    return true;
}
Test loop:
while (true) {
    machine.changeState(new MenuState);
    machine.changeState(nullptr);
}
Using a std::unique_ptr instead of raw works, and now ram usage is constant, but still - I wanna know.
Cheers!
 
    