Kezdőoldal » Számítástechnika » Programozás » A CPP-ban lehagyom a return...

A CPP-ban lehagyom a return 0;-t a main-ben miért történik ez? (Lefut rendesen, de kiírja: "szegmentálási hiba (core készült) "

Figyelt kérdés

Azt tanultuk előadáson, illetve a könyvemben is ez szerepel (Benedek-Levendovszky: Szoftverfejlesztés C++ nyelven), hogy a C++ többek közt abban is különbözik a C-től, hogy ha a main-ben nem írom a végére a programnak, hogy return 0;, akkor is gond nélkül lefordul és lefut. Mindezen felbátorodva gondoltam kipróbálom a dolgot. A program lefordult és lefutott, ahogy kell, de a helyes eredmények után még odabiggyesztette a terminál ablakba, hogy: "szegmentálási hiba (core készült)".

Amint odaírtam a program végére, hogy return 0; a jelenség megszűnt.

Mielőtt bárki beszólna nem hatalmas fáradság, ezentúl szépen kiírom majd, hogy return 0; de mostmár nem hagy nyugodni, hogy miért történik ez :-)

Ha elvileg cpp-ban nincs különbség a két verzió között, akkor miért írja ezt a return 0; nélküli verióra?


Unix Fedora 17 alatt vagyok, Eclipse-ben írom a programokat, Terminálon át fordítok és futtatok.



2013. ápr. 7. 15:48
 1/1 iostream ***** válasza:
Nem a return 0; a hiba. Amikor egy returnnél száll el a program, az annak a jele, hogy valami szétgyepálta a stacket, túlírtál valami stacken lévő tömböt pl. Nem kell a return 0; a main végére, viszont így legalább felfedeztél egy hibát a programodban.
2013. ápr. 7. 18:08
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!