Moet jy malloc in C++?
Moet jy malloc in C++?

Video: Moet jy malloc in C++?

Video: Moet jy malloc in C++?
Video: speller 2024, Mei
Anonim

Jy gebruik mallok wanneer jy benodig om voorwerpe toe te ken wat moet bestaan buite die leeftyd van uitvoering van die huidige blok (waar 'n kopie-op-terugkeer sou wees ook duur), of as jy moet geheue toewys groter as die grootte van daardie stapel (dws: 'n 3mb plaaslike stapel skikking is 'n slegte idee).

Moet jy ook malloc in C++?

Die verskil is eenvoudig: mallok ken geheue toe, terwyl nuwe geheue toeken EN die konstruktor van die voorwerp oproep jy gee geheue toe vir. Dus, tensy jy is beperk tot C, jy behoort nooit gebruik nie mallok , veral wanneer dit te doen het C++ voorwerpe.

Mens kan ook vra, wat is die punt van mallok? In C, die biblioteekfunksie mallok word gebruik om 'n blok geheue op die hoop toe te wys. Die program kry toegang tot hierdie blok geheue via 'n wyser wat mallok opbrengste. Wanneer die geheue nie meer nodig is nie, word die wyser na vry gestuur wat die geheue deallokeer sodat dit vir ander doeleindes gebruik kan word.

Is daar malloc op hierdie manier in C++?

Die mallok () funksioneer in C++ toeken a blok ongeinitialiseerde geheue en opbrengste a leemte wyser na die eerste byte van die toegekende geheue blok as die toewysing slaag. As die grootte is nul, die waarde teruggegee hang af van die implementering van die biblioteek. Dit mag of mag nie a nul wyser.

Hoe maak jy 'n struktuur malloc?

Vir wat jy wil hê, het jy twee nodig mallok () s. struktuur Vektor *y = mallok (grootte van *y); /* Let op die wyser */ y->x = calloc(10, grootte van *y->x); In die eerste reël ken jy geheue toe vir 'n Vector-voorwerp. mallok () gee 'n wyser terug na die toegekende geheue, so y moet 'n vektorwyser wees.