return main(); (fatal) - C++
Dica publicada em C/C++ / Segurança
return main(); (fatal) - C++
Bom, vou mostrar para vocês um erro fatal em programação em C++: a função return main().
Primeiro vou criar um código como exemplo:
Esse código simplesmente exibe a mensagem "Viva o Linux" repetitivamente. Pois vamos lá, no começo do código criamos a variável "main".
Aí colocamos os comandos entre as chaves e no final colocamos "return main();".
Ou seja, ele voltará para o comando int main, toda vez que ele voltar criará outro main, e outro, e outro e outro...
E adivinhem o que acontece? Acaba com sua memória.
Primeiro vou criar um código como exemplo:
#include <iostream>
#include <windows.h>
using namespace std;
int main {
system("pause");
cout<<"Viva o Linux"<<endl;
system("pause");
system("cls");
return main();
}
#include <windows.h>
using namespace std;
int main {
system("pause");
cout<<"Viva o Linux"<<endl;
system("pause");
system("cls");
return main();
}
Esse código simplesmente exibe a mensagem "Viva o Linux" repetitivamente. Pois vamos lá, no começo do código criamos a variável "main".
Aí colocamos os comandos entre as chaves e no final colocamos "return main();".
Ou seja, ele voltará para o comando int main, toda vez que ele voltar criará outro main, e outro, e outro e outro...
E adivinhem o que acontece? Acaba com sua memória.