Search code examples
c++loopsfor-looppointerspre-increment

How to appropriately use pointers in C++ functions?


I'm trying to get the hang of pointers and addresses in C++ and am having trouble with functions with changing parameters.

The code below is writing Loop run #1. in an infinite loop, instead of incrementing the value foo.

My question is: What is the issue with this code here?

#include <iostream>

void Statement(int *foo) {
    std::cout << "Loop run #" << *foo << ". ";
    foo++;
}

int main() {

    int foo = 1;

    for (;;) {
        Statement(&foo);
    }

}

Solution

  • You're incrementing a copy of the pointer itself, not what it points to. You probably meant:

    (*foo)++;
    

    This still won't fix the infinite loop though because you have nothing to stop it with.