Trebuie să faci malloc în C++?
Trebuie să faci malloc în C++?

Video: Trebuie să faci malloc în C++?

Video: Trebuie să faci malloc în C++?
Video: How to use malloc to dynamically allocate memory 2024, Mai
Anonim

Tu utilizare malloc cand ai nevoie să aloce obiecte care trebuie sa există dincolo de durata de viață de execuție a blocului curent (unde o copie la returnare ar fie și scump), sau dacă trebuie să alocați memorie mai mare decât dimensiunea acelei stive (adică: o matrice de stivă locală de 3 MB este o idee proastă).

De asemenea, trebuie să faci malloc în C++?

Diferența este simplă: malloc alocă memorie, în timp ce new alocă memorie ȘI apelează constructorul obiectului tu aloca memorie pentru. Deci, dacă nu tu sunt limitate la C, tu ar trebui nu utilizați niciodată malloc , mai ales când ai de-a face cu C++ obiecte.

Se mai poate întreba, ce rost are malloc? În C, funcția de bibliotecă malloc este folosit pentru a aloca un bloc de memorie pe heap. Programul accesează acest bloc de memorie printr-un pointer care malloc se intoarce. Când memoria nu mai este necesară, indicatorul este trecut la free, care dealoca memoria astfel încât să poată fi folosită în alte scopuri.

În acest fel, există malloc în C++?

Mallocul () funcţionează în C++ alocă A bloc de memorie neinițializată și returnări A void pointer către cel primul octet al cel bloc de memorie alocat dacă cel alocarea are succes. Dacă cel dimensiunea este zero, cel valoarea returnată depinde de cel implementarea a cel bibliotecă. Aceasta poate fi sau nu A indicator nul.

Cum faci malloc o structură?

Pentru ceea ce vrei, ai nevoie de două malloc () s. struct Vector *y = malloc (dimensiunea *y); /* Observați indicatorul */ y->x = calloc(10, sizeof *y->x); În prima linie, alocați memorie pentru un obiect Vector. malloc () returnează un pointer către memoria alocată, deci y trebuie să fie un pointer Vector.