Ero malloc ja uusi



Malloc vs Uusi
Yksi yleisimmistä haastattelukysymysten palkata ohjelmoija on hakijan / tietokoneohjelmoija selittää erot malloc ja uusi. Sekä malloc ja uusi olemassa valtakunnassa tietokoneen kielen ja usein käyttävät ohjelmoijat dynaamisen muistin jakaminen.

Tärkeimmät erot näiden kahden on, että malloc olemassa C-kieli, kun uusi on erityinen piirre C ++ kielen. Malloc on myös toiminto (joka, ohjelmoijille, vaatii jonkin verran aikaa suorittaa), kun uusi on operaattori ohjelma (joka leikkaa tekoaika). Tämä on hyötyä operaattorin uusien koska ohjelmoijat tekevät reaaliaikaisesti ohjelmointi on tarve valita nopein tapa käyttää.

Operaattorin uusi on tyyppihyväksynnän turvallinen toisin toiminto malloc.
Toiminto malloc on kirjaston funktion C-kieli. Se vain varata muistia ja palaa osoitin sen. Toisaalta, operaattori uusi on kieli tason konstruktio, ja sen tehtävänä on instanssia objekti jakamalla muistia ja soittamalla asianmukainen rakentajia. Toinen ero on funktion malloc operaattorin uutta, että malloc vaatii tyypittely aikana ilmoituksen, kun entinen doesnt 't. Myös toiminto malloc käyttää sanaa' vapaa 'tyhjentää muistin, kun' poista 'käytetään operaattorin uudet varten vastaavaan tarkoitukseen.

Molemmat on myös erilaisia ​​tapoja käsitellä epäonnistumiseen ja muistin sammumista. Jos toiminto malloc epäonnistuu, se palaa nollaosoittimen. Operaattori uusi koskaan palaa nollaosoittimen mutta ilmaisee epäonnistumisen heittämällä poikkeus sijaan. Tämä on etu, että operaattori uusi, sillä ohjelmoija doesnt 't täytyy tarkistaa palautetaan osoitin joka kerta se vaatii uusia eivätkä ohjelmoija jää tällainen poikkeus.

Toiminto malloc doesnt 't piirrät objektin (kutsutaan rakentajan objekti), mutta operaattori uutta ei. Toinen etu uusi on, että käyttäjä voi ylikuormittua, kun toiminto malloc voi. Operaattori uusia edellyttää erityistä joukko esineitä kohdentaa kun toiminto malloc vaatii täsmennetään yhteensä tavujen jakaa.

Muisti voidaan myös uudelleen kokoinen tai uudelleen käyttämällä toimintoa malloc käyttämällä realloc. Kuitenkin operaattori uusi voi suorittaa tätä toimintoa ja laskee sitä yhtenä operaattorin 's tärkeimmät haitat. Toinen etu funktion malloc yli operaattori uutta, että malloc voi laajentaa muistin määrää nopeasti. Tämä on edelleen käytössä malloc ja realloc. Kun teet sama tilanne C ++ kielellä, ohjelmoija on luoda uusi murikka muistia operaattorin uusi. uusi muisti on oltava modifioitu koko ja kopioidaan yli tietoja alkuperäisestä puskuriin. alkuperäinen puskuri on poistettava jälkeen kopion. Tämä voi olla hidas prosessi ohjelmoija.

Operaattori uusi on vaikutusvaltaa toiminto malloc palauttamalla tarkat tiedot tyyppi, kun funktio palauttaa void *. Toiminto malloc ei myöskään voi ylikuormittaa verrattuna operaattorin uusia jossa ylikuormitus on mahdollinen. Toinen piirre operaattorin uusien, että on olemassa vähemmän mahdollisuuksia tehdä virheitä operaattorin kanssa verrattuna toiminto malloc. Tätä pidetään plus ohjelmoijille varsinkin, jos ne ovat kirjallisesti monta koodia tai toimivat koodin nopealla aikataululla. Toiminto malloc ja vapaa voidaan käyttää C ++, mutta sitä ei voida käyttää suoraan. On suositeltavaa käyttää uusia ja poistaa sijaan.



Yhteenveto:

1. malloc on funktio, kun uusi on operaattori.

2. Uudet on erityinen piirre C ++ -kielen kun malloc käytetään C-kieli.

3. Operator uusi seuraa 'poista', kun toiminto malloc menee 'ilmaiseksi'.