Potřebujete malloc v C++?
Potřebujete malloc v C++?

Video: Potřebujete malloc v C++?

Video: Potřebujete malloc v C++?
Video: How to use malloc to dynamically allocate memory 2024, Listopad
Anonim

Vy použití malloc když potřebuješ přidělit objekty, které musí existovat po uplynutí doby trvání provádění aktuálního bloku (kde je kopie při návratu bych být také drahý), nebo pokud musíte alokovat paměť větší než velikost tohoto zásobníku (tj. 3mb lokální pole zásobníku je špatný nápad).

Také potřebujete malloc v C++?

Rozdíl je jednoduchý: malloc alokuje paměť, zatímco new alokuje paměť AND volá konstruktor objektu vy 'přiděluje paměť pro. Tedy pokud vy jsou omezeny na C, měl by jsi nikdy nepoužívejte malloc , zejména při jednání s C++ objektů.

Někdo se také může ptát, jaký je smysl malloc? V C funkce knihovny malloc se používá k přidělení bloku paměti na haldě. Program přistupuje k tomuto bloku paměti přes ukazatel, který malloc se vrací. Když paměť již není potřeba, ukazatel je předán k volnému, což uvolní paměť, aby mohla být použita pro jiné účely.

Existuje tímto způsobem malloc v C++?

Malloc () funkce v C++ přiděluje A blok neinicializované paměti a vrátí se A void ukazatel na a první byte z a alokovaný paměťový blok if a alokace úspěšná. Li a velikost je nula, a vrácená hodnota závisí na a implementace a knihovna. To může a nemusí být A nulový ukazatel.

Jak nalézáte strukturu?

Na to, co chcete, potřebujete dva malloc () s. strukturovat Vektor *y = malloc (velikost *y); /* Všimněte si ukazatele */ y->x = calloc(10, sizeof *y->x); V prvním řádku alokujete paměť pro objekt Vector. malloc () vrací ukazatel na přidělenou paměť, takže y musí být vektorový ukazatel.