C++-ban malloc kell?
C++-ban malloc kell?

Videó: C++-ban malloc kell?

Videó: C++-ban malloc kell?
Videó: Include Path Error in VS code while running c cpp codes, unable to open stdio.h error in c vs code 2024, Lehet
Anonim

te használat malloc amikor szükséged van olyan objektumok kiosztására kell az aktuális blokk végrehajtásának élettartamán túl léteznek (ahol egy visszamásolás lenne drága is legyen), vagy ha memóriát kell lefoglalnia nagyobb, mint a verem mérete (azaz: egy 3 MB-os helyi veremtömb rossz ötlet).

Illetve malloc kell C++-ban?

A különbség egyszerű: malloc lefoglalja a memóriát, míg a new lefoglalja a memóriát ÉS meghívja az objektum konstruktorát te memóriát foglal le. Szóval, hacsak nem te C-re korlátozódik, neked kellene soha ne használd malloc , különösen, ha foglalkozunk C++ tárgyakat.

Az is felmerülhet, hogy mi értelme a mallocnak? C-ben a könyvtári függvény malloc memóriablokk lefoglalására szolgál a kupacban. A program ehhez a memóriablokkhoz egy mutatón keresztül ér el, amely malloc visszatér. Amikor a memóriára már nincs szükség, a mutatót a szabaddá teszi át, amely felszabadítja a memóriát, hogy más célokra is felhasználható legyen.

Ilyen módon van malloc a C++-ban?

A malloc () funkció be C++ kiosztja a az inicializálatlan memória blokkja és visszatér a üres mutató az első bájtja az lefoglalt memóriablokk, ha az kiosztása sikerül. Ha az a méret nulla, az a visszaadott érték attól függ az végrehajtása az könyvtár. Azt lehet vagy nem a null mutató.

Hogyan lehet összerakni egy szerkezetet?

Ahhoz, amit akarsz, kettő kell malloc () s. struct Vektor *y = malloc (*y mérete); /* Jegyezzük meg a mutatót */ y->x = calloc(10, sizeof *y->x); Az első sorban lefoglalja a memóriát egy vektorobjektum számára. malloc () egy mutatót ad vissza a lefoglalt memóriára, tehát y-nak vektormutatónak kell lennie.