უფასოა გამოყოფილი მეხსიერება?

Სარჩევი:

უფასოა გამოყოფილი მეხსიერება?
უფასოა გამოყოფილი მეხსიერება?
Anonim

მალოკ და calloc ფუნქციების გამოყენებით გამოყოფილი მეხსიერება დამოუკიდებლად არ არის გამოყოფილი. აქედან გამომდინარე, გამოიყენება უფასო მეთოდი, როდესაც ხდება დინამიური მეხსიერების განაწილება. ის მეხსიერების ფუჭების შემცირებას უწყობს ხელს მისი განთავისუფლებით.

როგორ ხდება გამოყოფილი მეხსიერება უფასო?

C-ში ბიბლიოთეკის ფუნქცია malloc გამოიყენება გროვაზე მეხსიერების ბლოკის გამოსაყოფად. პროგრამა წვდება მეხსიერების ამ ბლოკს მაჩვენებლის საშუალებით, რომელსაც malloc აბრუნებს. როდესაც მეხსიერება აღარ არის საჭირო, მაჩვენებელი გადაეცემა თავისუფალ -ს, რომელიც ანაწილებს მეხსიერებას ისე, რომ ის შეიძლება გამოყენებულ იქნას სხვა მიზნებისთვის.

რა მოხდება, თუ არ გაათავისუფლებთ გამოყოფილ მეხსიერებას?

უმეტეს შემთხვევაში, პროგრამის გასვლამდე მეხსიერების გადანაწილება უაზროა. OS მაინც დაიბრუნებს მას. უფასო შეეხება და გვერდს უსვამს მკვდარ ობიექტებს; OS არ იქნება. შედეგი: ფრთხილად იყავით „გაჟონვის დეტექტორებთან“, რომლებიც ითვლიან განაწილებებს.

ძვირია მეხსიერების გამოყოფა?

მეხსიერების დიდი ბლოკების გამოყოფისა და განთავისუფლების ღირებულების გულუბრყვილო გაზომვა დაასკვნის, რომ ეს ღირს დაახლოებით 7,5 μs თითოეული განაწილებისთვის/უფასო წყვილისთვის. თუმცა არის სამი ცალკე თითო მბაიტიანი ხარჯი დიდი გამოყოფისთვის.

შეიძლება თუ არა გამოყოფილი მეხსიერების სივრცის გადანაწილება, თუ კი, როგორ?

realloc ფუნქცია გამოყოფს, გადაანაწილებს ან ათავისუფლებს ძველი_blk-ით მითითებულ მეხსიერების ბლოკს შემდეგი წესების საფუძველზე: თუ old_blk არის NULL, მეხსიერების ახალი ბლოკი ზომის ბაიტით. არისგამოყოფილი. თუ ზომა ნულის ტოლია, თავისუფალი ფუნქცია გამოიძახება მეხსიერების გასათავისუფლებლად, რომელზეც მითითებულია old_blk.

გირჩევთ:

საინტერესო სტატიები
მოგიღია ოდესმე დამცველმა ხელოვნების როსსი?
Წაიკითხე მეტი

მოგიღია ოდესმე დამცველმა ხელოვნების როსსი?

Orr არის ერთადერთი მცველი, რომელმაც მოიგო საგოლე ტიტული, ამას აკეთებდა 1970 და 1975 წლებში ბოსტონთან ერთად, ხოლო 1970 წელს ის გახდა პირველი მოთამაშე, რომელმაც მიიღო ოთხი ინდივიდუალური ჯილდო. ერთ სეზონში მან მოიგო ჰარტი, ნორისი და კონ სმიტის ტროფეები იმ წელსაც.

საიდან მოდის ტერმინი fretting?
Წაიკითხე მეტი

საიდან მოდის ტერმინი fretting?

Fret მოდის ძველი ინგლისური სიტყვიდან freton, რაც ნიშნავს ცხოველის მსგავსად გადაყლაპვას. როცა რაღაცაზე ნერვიულობ, ის შენს აზრებს შთანთქავს. რამდენი წლის არის სიტყვა fret? fret (v.) ძველი ინგლისური ფრეტანი "გაყლაპავს, იკვებება, მოიხმარს"

ღობე გადასახადის ჩამოწერაა?
Წაიკითხე მეტი

ღობე გადასახადის ჩამოწერაა?

თქვენი ეზოს შემოღობვა ხელს უწყობს თქვენი სახლის "საგადასახადო საფუძველს". ეს ნიშნავს, რომ უზრუნველყოფს საგადასახადო შეღავათს მხოლოდ მაშინ, როცა ყიდით თქვენს სახლს. მანამდე ღობის აშენების ღირებულებას ვერ გამოიკლებთ. სახლის რა სახის გაუმჯობესება შეიძლება გამოიქვითოს გადასახადიდან?