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, Svibanj
Anonim

Vas koristiti malloc kada trebaš dodijeliti objekte koji mora postoje izvan životnog vijeka izvršenja trenutnog bloka (gdje je kopija na povratku bi biti i skupo), ili ako morate dodijeliti memoriju veći od veličine tog stoga (tj.: lokalni stog niz od 3 MB je loša ideja).

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

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

Netko se također može pitati, koja je svrha malloca? U C, funkcija knjižnice 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++ dodjeljuje 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 ovisi o the provedba the knjižnica. To može ili ne mora biti a nulti pokazivač.

Kako mallocirati strukturu?

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