ვიდეო: გჭირდებათ malloc C++-ში?
2024 ავტორი: Lynn Donovan | [email protected]. ბოლოს შეცვლილი: 2023-12-15 23:49
შენ გამოყენება მალოკი როდესაც შენ გჭირდება გამოყოს ობიექტები რომ უნდა არსებობს მიმდინარე ბლოკის შესრულების ვადის მიღმა (სადაც არის ასლი-დაბრუნება იქნებოდა იყოს ძვირიც), ან თუ მეხსიერების გამოყოფა გჭირდებათ აღემატება ამ სტეკის ზომას (ანუ: 3 მბ ლოკალური სტეკის მასივი ცუდი იდეაა).
ასევე, გჭირდებათ malloc C++-ში?
განსხვავება მარტივია: მალოკი გამოყოფს მეხსიერებას, ხოლო new ანაწილებს მეხსიერებას და რეკავს ობიექტის კონსტრუქტორს შენ მეხსიერების გამოყოფა. ასე რომ, თუ შენ შეზღუდულია C-ით, შენ უნდა არასოდეს გამოიყენოთ მალოკი განსაკუთრებით მაშინ, როდესაც საქმე გვაქვს C++ ობიექტები.
შეიძლება ასევე იკითხოს, რა აზრი აქვს malloc-ს? C-ში ბიბლიოთეკის ფუნქცია მალოკი გამოიყენება გროვაზე მეხსიერების ბლოკის გამოსაყოფად. პროგრამა წვდება მეხსიერების ამ ბლოკს მაჩვენებლის საშუალებით, რომელიც მალოკი ბრუნდება. როდესაც მეხსიერება აღარ არის საჭირო, კურსორი გადადის თავისუფალზე, რომელიც ანაწილებს მეხსიერებას ისე, რომ ის შეიძლება გამოყენებულ იქნას სხვა მიზნებისთვის.
ამ გზით, არის malloc C++-ში?
მალოკი () ფუნქციონირებაში C++ გამოყოფს ა არაინიციალიზებული მეხსიერების ბლოკი და დაბრუნებები ა void მაჩვენებელი The პირველი ბაიტი The გამოყოფილი მეხსიერების ბლოკი თუ The განაწილება წარმატებულია. თუ The ზომა არის ნული, The დაბრუნებული ღირებულება დამოკიდებულია The განხორციელება The ბიბლიოთეკა. ის შეიძლება იყოს ან არ იყოს ა null მაჩვენებელი.
როგორ აწყობთ სტრუქტურას?
იმისთვის, რაც გინდა, ორი გჭირდება მალოკი () ს. სტრუქტურა ვექტორი *y = მალოკი (ზომა *y); /* შენიშნეთ მაჩვენებელი */ y->x = calloc(10, sizeof *y->x); პირველ რიგში, თქვენ გამოყოფთ მეხსიერებას ვექტორული ობიექტისთვის. მალოკი () აბრუნებს მაჩვენებელს გამოყოფილ მეხსიერებაში, ამიტომ y უნდა იყოს ვექტორული მაჩვენებელი.