Trenger du malloc i C++?
Trenger du malloc i C++?

Video: Trenger du malloc i C++?

Video: Trenger du malloc i C++?
Video: speller 2024, Kan
Anonim

Du bruk malloc når du trenger å tildele objekter som må eksisterer utover levetiden for utførelse av gjeldende blokk (hvor en kopi-ved-retur ville være dyrt også), eller hvis du må tildele minne større enn størrelsen på den stabelen (dvs.: en 3mb lokal stabelmatrise er en dårlig idé).

Trenger du også malloc i C++?

Forskjellen er enkel: malloc allokerer minne, mens ny allokerer minne OG kaller konstruktøren til objektet du tildeler minne for. Så, med mindre du er begrenset til C, du burde aldri bruk malloc , spesielt når du har å gjøre med C++ gjenstander.

Man kan også spørre seg, hva er vitsen med malloc? I C, bibliotekfunksjonen malloc brukes til å tildele en minneblokk på heapen. Programmet får tilgang til denne minneblokken via en peker som malloc returnerer. Når minnet ikke lenger er nødvendig, sendes pekeren til fri som deallokerer minnet slik at det kan brukes til andre formål.

På denne måten, er det malloc i C++?

Mallocen () funksjon i C++ tildeler en blokk med uinitialisert minne og returer en ugyldig peker til de første byte av de tildelt minneblokk if de tildelingen lykkes. Hvis de størrelsen er null, de verdi returnert avhenger av de Implementering av de bibliotek. Den kan eller kan ikke være en null-peker.

Hvordan mallocerer du en struktur?

For det du vil trenger du to malloc () s. struktur Vektor *y = malloc (størrelse på *y); /* Legg merke til pekeren */ y->x = calloc(10, størrelsen på *y->x); På den første linjen allokerer du minne for et vektorobjekt. malloc () returnerer en peker til det tildelte minnet, så y må være en vektorpeker.