Ali morate mallocirati v C++?
Ali morate mallocirati v C++?

Video: Ali morate mallocirati v C++?

Video: Ali morate mallocirati v C++?
Video: samo audio ali morate cuti 2024, April
Anonim

ti uporaba malloc kdaj potrebuješ dodeliti predmete, ki mora obstajajo po dolžini izvajanja trenutnega bloka (kjer je kopija ob vrnitvi bi biti tudi drag), ali če morate dodeliti pomnilnik večja od velikosti tega sklada (tj: 3mb lokalni niz skladov je slaba ideja).

Ali morate tudi mallocirati v C++?

Razlika je preprosta: malloc dodeli pomnilnik, medtem ko new dodeli pomnilnik IN pokliče konstruktor objekta ti dodeljujejo pomnilnik za. Torej, razen če ti so omejeni na C, moral bi nikoli ne uporabljajte malloc , zlasti ko se ukvarjate z C++ predmetov.

Lahko se tudi vprašamo, kaj je smisel malloca? V C-ju funkcija knjižnice malloc se uporablja za dodelitev bloka pomnilnika na kupu. Program dostopa do tega bloka pomnilnika prek kazalca, ki malloc vrne. Ko pomnilnik ni več potreben, se kazalec prenese na prosto, kar sprosti pomnilnik, tako da ga je mogoče uporabiti za druge namene.

Ali na ta način obstaja malloc v C++?

Malloc () funkcija v C++ dodeli a blok neinicializiranega pomnilnika in vrnitev a kazalec praznine na the prvi bajt the dodeljeni pomnilniški blok, če the dodelitev uspe. Če the velikost je nič, the vrnjena vrednost je odvisna od the izvajanje the knjižnica. To lahko ali pa ne a ničelni kazalec.

Kako mallocirate strukturo?

Za tisto, kar hočeš, potrebuješ dva malloc () s. struct Vektor *y = malloc (velikost *y); /* Upoštevajte kazalec */ y->x = calloc(10, sizeof *y->x); V prvi vrstici dodelite pomnilnik za vektorski objekt. malloc () vrne kazalec na dodeljeni pomnilnik, zato mora biti y vektorski kazalec.