I've made this example to show what I'm talking about. I want to know if there is a way to run through main() without resetting value to 0.
int main(){
   int value = 0;
   value++;
   cout << value << endl;
   main();
}
I've made this example to show what I'm talking about. I want to know if there is a way to run through main() without resetting value to 0.
int main(){
   int value = 0;
   value++;
   cout << value << endl;
   main();
}
 
    
    Before answering the question, your example has two big problems
main is not allowed.A different example where value is saved between calls could look like this. It uses a static variable, initialized to 0 the first time the function is called, and is never initialized again during the program execution.
#include <iostream>
int a_function() {
    static int value = 0;
    ++value;
    if(value < 100) a_function();
    return value;
}
int main(){
    std::cout << a_function();   // prints 100
}
 
    
    If you want to keep the variable value local to the main function, you can declare it as static int value = 0;.
As has been pointed out in various comments though, recursively calling any function without an escape mechanism like you are is a bad idea. Doing it with main is a worse idea still apparently not even possible.
