Trebate li mallocirati u C++?
Trebate li mallocirati u C++?

Video: Trebate li mallocirati u C++?

Video: Trebate li mallocirati u C++?
Video: Working With Basic Numbers In C++ 2024, Maj
Anonim

Vi koristiti malloc kada ti trebas dodijeliti objekte koji mora postoje nakon životnog vijeka izvršenja trenutnog bloka (gdje je kopija po povratku bi biti skupa) ili ako morate dodijeliti memoriju veća od veličine tog steka (tj.: 3mb lokalni niz steka je loša ideja).

Također, da li trebate mallocirati u C++?

Razlika je jednostavna: malloc alocira memoriju, dok new alocira memoriju AND poziva konstruktor objekta ti dodjeljujemo memoriju za. Dakle, osim ako ti ograničeni su na C, trebao bi nikada ne koristiti malloc , posebno kada se radi sa C++ objekata.

Neko se takođe može zapitati, koja je svrha malloca? U C, funkcija biblioteke malloc koristi se za dodjelu bloka memorije na hrpi. Program pristupa ovom bloku memorije preko pokazivača koji malloc vraća. Kada memorija više nije potrebna, pokazivač se prosljeđuje na oslobađanje što oslobađa memoriju tako da se može koristiti u druge svrhe.

Na ovaj način, postoji li malloc u C++?

Malloc () funkcija u C++ izdvaja a blok neinicijalizirane memorije i vraća a void pokazivač na the prvi bajt od the dodijeljeni memorijski blok ako the alokacija je uspješna. Ako the veličina je nula, the vraćena vrijednost zavisi od the implementacija the biblioteka. To može ili ne mora biti a null pokazivač.

Kako mallocirati strukturu?

Za ono što želite potrebna su vam dva malloc () s. struct Vektor *y = malloc (veličina *y); /* Zabilježite pokazivač */ y->x = calloc(10, sizeof *y->x); U prvom redu dodjeljujete memoriju za Vector objekt. malloc () vraća pokazivač na dodijeljenu memoriju, tako da y mora biti vektorski pokazivač.