A është memoria e ndarë pa pagesë?

Përmbajtje:

A është memoria e ndarë pa pagesë?
A është memoria e ndarë pa pagesë?
Anonim

Kujtesa e alokuar duke përdorur funksionet malloc dhe calloc nuk shpërndahet më vete. Prandaj përdoret metoda free, sa herë që bëhet ndarja dinamike e memories. Ndihmon në reduktimin e humbjes së kujtesës duke e çliruar atë.

Si bëhet falas memoria e ndarë?

Në C, funksioni i bibliotekës malloc përdoret për të ndarë një bllok memorie në grumbull. Programi i qaset këtij blloku të memories nëpërmjet një treguesi që malloc e kthen. Kur memoria nuk nevojitet më, treguesi kalohet në të lirë i cili shpërndan memorien në mënyrë që të mund të përdoret për qëllime të tjera.

Çfarë ndodh nëse nuk e lironi memorien e ndarë?

Në shumicën e rasteve, shpërndarja e memory pak para daljes nga programi është e kotë. OS do ta rimarrë atë gjithsesi. Free do të prekë dhe do të faqe në objektet e vdekura; OS nuk do. Pasoja: Kini kujdes me "detektorët e rrjedhjeve" që numërojnë alokimet.

A është e shtrenjtë shpërndarja e memories?

Një matje naive e kostos së shpërndarjes dhe lirimit të blloqeve të mëdha të memories do të arrinte në përfundimin se kushton rreth 7,5 μs për çdo shpërndarje/çift pa pagesë. Megjithatë ka tre kosto të veçanta për MB për alokime të mëdha.

A mund të rishpërndahet hapësira e caktuar e memories nëse po si?

Funksioni realloc shpërndan, rialokon ose çliron bllokun e memories të specifikuar nga old_blk bazuar në rregullat e mëposhtme: Nëse old_blk është NULL, një bllok i ri memorie me madhësi bajte ështëtë ndara. Nëse madhësia është zero, funksioni i lirë thirret për të lëshuar kujtesën e treguar nga old_blk.

Recommended: