Keni nevojë për malloc në C++?
Keni nevojë për malloc në C++?

Video: Keni nevojë për malloc në C++?

Video: Keni nevojë për malloc në C++?
Video: Data Structures Summary 2024, Mund
Anonim

Ju përdorni malloc kur ju duhet për të ndarë objektet që duhet ekzistojnë përtej jetëgjatësisë së ekzekutimit të bllokut aktual (ku një kopje-në-kthim do të jetë i shtrenjtë gjithashtu), ose nëse ju duhet të ndani memorie më e madhe se madhësia e asaj rafte (d.m.th.: një grup stack lokal prej 3 mb është një ide e keqe).

Gjithashtu, a keni nevojë për malloc në C++?

Dallimi është i thjeshtë: malloc alokon memorien, kurse new alokon memorie DHE thërret konstruktorin e objektit ju Po ndajnë memorie për. Pra, përveç nëse ju janë të kufizuara në C, ti duhet mos përdorni kurrë malloc , sidomos kur kemi të bëjmë me C++ objektet.

Dikush mund të pyesë gjithashtu, cili është qëllimi i malloc? 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 kthehet. Kur memoria nuk është më e nevojshme, treguesi kalon në të lirë i cili shpërndan memorien në mënyrë që të mund të përdoret për qëllime të tjera.

Në këtë mënyrë, a ka malloc në C++?

Malloku () funksion në C++ ndan a blloku i memories së pa inicializuar dhe kthimet a treguesi i zbrazët për të të bajtin e parë të të alokuar bllok memorie nëse të alokimi ka sukses. Nëse të madhësia është zero, të vlera e kthyer varet nga të implementimi i të librari. Ajo mund të jetë ose jo a tregues null.

Si e vendosni një strukturë?

Për atë që dëshironi ju duhen dy malloc () s. struktura Vektor *y = malloc (madhësia e *y); /* Vini re treguesin */ y->x = calloc(10, madhësia e *y->x); Në rreshtin e parë, ju ndani memorie për një objekt Vector. malloc () kthen një tregues në memorien e alokuar, kështu që y duhet të jetë një tregues Vektori.