Je, unahitaji malloc katika C++?
Je, unahitaji malloc katika C++?

Video: Je, unahitaji malloc katika C++?

Video: Je, unahitaji malloc katika C++?
Video: Data Structures Summary 2024, Novemba
Anonim

Wewe kutumia malloc lini unahitaji kutenga vitu hivyo lazima kuwepo zaidi ya maisha ya utekelezaji wa kizuizi cha sasa (ambapo kunakili-kwa-kurejesha ingekuwa kuwa ghali pia), au ikiwa unahitaji kutenga kumbukumbu kubwa kuliko saizi ya mrundikano huo (yaani: safu ya rafu ya 3mb ya ndani ni wazo mbaya).

Pia, unahitaji malloc katika C++?

Tofauti ni rahisi: malloc hugawa kumbukumbu, wakati mpya hutenga kumbukumbu NA huita mjenzi wa kitu wewe tunagawa kumbukumbu kwa. Kwa hivyo, isipokuwa wewe Imezuiliwa kwa C, unapaswa kamwe kutumia malloc , hasa wakati wa kushughulika na C++ vitu.

Mtu anaweza pia kuuliza, ni nini uhakika wa malloc? Katika C, kazi ya maktaba malloc hutumika kutenga kizuizi cha kumbukumbu kwenye lundo. Programu inapata kizuizi hiki cha kumbukumbu kupitia pointer ambayo malloc anarudi. Wakati kumbukumbu haihitajiki tena, pointer inapitishwa kwa bure ambayo inasambaza kumbukumbu ili iweze kutumika kwa madhumuni mengine.

Kwa njia hii, kuna malloc katika C++?

Malloc () kazi katika C++ kutenga a kizuizi cha kumbukumbu na urejeshaji ambao haujaanzishwa a pointer tupu kwa ya baiti ya kwanza ya ya kizuizi cha kumbukumbu kilichotengwa ikiwa ya mgao unafanikiwa. Kama ya ukubwa ni sifuri, ya thamani iliyorejeshwa inategemea ya utekelezaji wa ya maktaba. Ni inaweza kuwa au isiwe a null pointer.

Jinsi ya kufanya malloc muundo?

Kwa kile unachotaka unahitaji mbili malloc () s. muundo Vekta *y = malloc (ukubwa wa *y); /* Kumbuka pointer */ y->x = calloc(10, sizeof *y->x); Katika mstari wa kwanza, unatenga kumbukumbu kwa kitu cha Vector. malloc () inarudisha kielekezi kwenye kumbukumbu iliyotengwa, kwa hivyo y lazima iwe kiashirio cha Vekta.