+ 1

How to call main function in c++ from another function.

30th Oct 2018, 3:58 PM
Vineet
6 ответов
+ 3
Call main(), why you need to do that anyway ?
30th Oct 2018, 4:10 PM
Taste
Taste - avatar
+ 1
You can call main like any normal function. But it most likely will cause infinite loop main() call f() call maim() call f() ...
30th Oct 2018, 4:17 PM
Taste
Taste - avatar
+ 1
The constructor/destructor pattern might work--you need the stack to pop--but calling main() from the destructor only works once: https://code.sololearn.com/cCnk83IEL9Ff/?ref=app [these C's should be portable to c++] Here I use a fatal signal (a Floating Point Exception) to effectively GOTO. It's weird (why not just goto) but should be safe. https://code.sololearn.com/c99KPGHr5FIb/?ref=app ...And here...I do call main repeatedly but...just for fun (don't do this); I'm jumping mid-instruction and falling through the 'constructor area' again; it leaks memory and should probably segfault (try removing the printf() to get Memory Limit Exceeded): https://code.sololearn.com/cYgU9YGHlfD1/?ref=app The point of including the last one is to emphasize: you have to pop the call stack (i.e. return or crash) .
30th Oct 2018, 4:43 PM
Kirk Schafer
Kirk Schafer - avatar
0
I am making a project on data handling.So I have to go to beginning of main function again and again
30th Oct 2018, 4:11 PM
Vineet
0
By the way, your clarification "go to the beginning again..." can be solved with this pattern: int main() { while(1==1) { // ...stuff... if(someTest==exitCondition) break; } return 0; }
30th Oct 2018, 4:54 PM
Kirk Schafer
Kirk Schafer - avatar
0
Randomzz - Lets Begin The Fun Generally the patern would be this: main() { init() ret = main_loop() //real stuff happens here. It can be recursive or whatever. deinit() return ret }
30th Oct 2018, 5:12 PM
Vlad Serbu
Vlad Serbu - avatar