rozbija się na wykonanie:Dlaczego ten program zachować upaść
#include <iostream>
int main()
{
if(main());
return 0;
}
Dlaczego?
rozbija się na wykonanie:Dlaczego ten program zachować upaść
#include <iostream>
int main()
{
if(main());
return 0;
}
Dlaczego?
zawiesza się z powodu Stackoverflow oczywiście, ponieważ nie ma warunek kończący, ale technicznie C++
kompilator jest dozwolone, aby go nie skompilować, ponieważ w C++:
main() cannot be called from within a program.
The address of main() cannot be taken.
The main() function cannot be overloaded.
Co mówi średnia:
Załącznik do C zgodnością
3,6
Change: Main cannot be called recursively and cannot have its address taken
Rationale: The main function may require special actions.
Effect on original feature: Deletion of semantically well-defined feature
Difficulty of converting: Trivial: create an intermediary function such as mymain(argc, argv).
How widely used: Seldom
Zgodnie z nazwą witryny, którą powodują przepełnienie stosu.
Za każdym razem program robi oświadczenie if
stawia trochę informacji na stos więc może powrócić. jednak program będzie ciągle to powtarzać, aż zabraknie miejsca, powodując przepełnienie stosu.
Jeśli funkcja main
wywołuje funkcje main
, masz nieskończoną głębokość zagnieżdżania. Jednak każdy poziom zagnieżdżenia wymaga nieco więcej pamięci. Ponieważ proces ten nigdy się nie kończy, w końcu uruchamiasz dostępną pamięć (dokładnie, pamięć stosu, która jest rzędu wielkości kilku megabajtów i naprawdę wiele wywołań funkcji). Następnie system operacyjny zabija proces.
ISO/IEC 14882: 2003 (E) 3.6.1 (3)
Główną funkcją nie stosuje się (3.2) w ramach programu. Powiązanie (3.5) głównego jest zdefiniowane przez implementację. Program, który deklaruje, że jest liniowy lub statyczny, jest źle sformułowany. Główne imię nie jest zastrzeżone. [Przykład: funkcje członkowskie, klasy i wyliczenia mogą być nazywane głównymi, podobnie jak jednostki w innych obszarach nazw. ]
Wygląda nieskończonej pętli do mnie. – yogsma
Mam nadzieję, że pomogliśmy ci rozwiązać twoje zadanie domowe ... ;-) –
To jest coś związanego z tą stroną ... –