Tarvitsetko mallocia C++:ssa?
Tarvitsetko mallocia C++:ssa?

Video: Tarvitsetko mallocia C++:ssa?

Video: Tarvitsetko mallocia C++:ssa?
Video: Полет по Испании (4K UHD) - расслабляющая музыка вместе с красивыми видеороликами природы 2024, Marraskuu
Anonim

Sinä käyttää malloc kun tarvitset kohdentaa kohteita, jotka on pakko olemassa nykyisen lohkon suoritusajan jälkeen (jossa kopiointi-palautus olisi olla myös kallis), tai jos sinun on varattava muistia suurempi kuin kyseisen pinon koko (eli: 3 megatavun paikallinen pinomatriisi on huono idea).

Tarvitsetko myös mallocin C++:ssa?

Ero on yksinkertainen: malloc varaa muistia, kun taas new varaa muistia JA kutsuu objektin rakentajaa sinä varaavat muistia. Eli ellei sinä rajoittuu C-kirjaimeen, sinun pitäisi koskaan käytä malloc , varsinkin kun on tekemisissä C++ esineitä.

Voidaan myös kysyä, mitä järkeä mallocilla on? C:ssä kirjastofunktio malloc käytetään varaamaan muistilohko kasaan. Ohjelma käyttää tätä muistilohkoa osoittimen kautta malloc palaa. Kun muistia ei enää tarvita, osoitin välitetään vapaalle, joka vapauttaa muistin, jotta sitä voidaan käyttää muihin tarkoituksiin.

Tällä tavalla, onko malloc C++:ssa?

Malloc () toiminto sisään C++ jakaa a alustamattoman muistin lohko ja palautukset a tyhjä osoitin the ensimmäinen tavu the varattu muistilohko, jos the jako onnistuu. Jos the koko on nolla, the palautettava arvo riippuu the toteutus the kirjasto. Se voi olla tai ei a nolla osoitin.

Miten rakenteet malloc?

Mitä haluat, tarvitset kaksi malloc () s. struct Vektori *y = malloc (*y:n koko); /* Huomaa osoitin */ y->x = calloc(10, *y->x:n koko); Ensimmäisellä rivillä varaat muistia vektoriobjektille. malloc () palauttaa osoittimen varattuun muistiin, joten y:n on oltava vektoriosoitin.