Avatar billede heyn Nybegynder
09. juli 2013 - 08:35 Der er 2 kommentarer og
1 løsning

Ang. brug af exit() funktion og memory allokeret til pointere

Hej Eksperter.

Jeg har et program hvor det i visse tilfælde kan være nødvendigt at anvende 'exit(0)' funktionen i stedet for at lade programmet løbe til enden og afslutte med 'return 0;'. Det der er nogle ting jeg ikke forstår ved exit

Fungerer exit som return i main el. er der forskel? Og i forlængelse af dette. Når man anvender exit() vil memory allokeret til pointere så blive frigjort?

Ang. pointere er jeg blevet informeret om at al hukommelse allokeret med malloc() funktionen i moderne OS automatisk bliver frigjort når programmet afsluttes selv om man ikke anvender free().

Hvilke versioner af Linux gælder dette for. For mit tilfælde drejer det sig specifikt om Ubuntu 8+ ?

Det er vigtigt for mig fordi mit program vil blive kørt hundreder af gange om dagen, og hukommelsen ikke er specielt stor. Så kunne jeg jo risikere at hukommelsen blev fuldstændigt besat med 'spøgelses' hukommelse. Så er jeg jo nødt til at lave en speciel exit-strategi.

Venlig hilsen Christian
Avatar billede arne_v Ekspert
09. juli 2013 - 22:29 #1
exit i main fungerer som return, men exit i andre funktioner fungerer ikke som return.

Memory allokeret af et program vil blive frigivet ved program afslutning uanset hvordan det er allokeret og hvordan programmet afsluttet i alle moderne OS. Moderne OS er vel noget nyere end ca. 1975! Det inkluderer alle Linux versioner.
Avatar billede heyn Nybegynder
09. juli 2013 - 22:32 #2
Tak - Det giver mig ro i maven.

Giv et svar.
Avatar billede arne_v Ekspert
09. juli 2013 - 22:47 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester