Трябва ли да malloc в C++?
Трябва ли да malloc в C++?

Видео: Трябва ли да malloc в C++?

Видео: Трябва ли да malloc в C++?
Видео: Базовый курс C++ (MIPT, ILab). Lecture 21. LLVM, часть 1 2024, Може
Anonim

Вие използване malloc кога имате нужда за разпределяне на обекти, които трябва да съществуват след живота на изпълнение на текущия блок (където копие при връщане би се също да бъде скъп), или ако трябва да разпределите памет по-голям от размера на този стек (т.е.: 3mb локален стеков масив е лоша идея).

Също така, трябва ли да malloc в C++?

Разликата е проста: malloc разпределя памет, докато new разпределя памет AND извиква конструктора на обекта Вие разпределяме памет за. Така че, освен ако Вие са ограничени до C, ти трябва никога не използвайте malloc , особено при работа с C++ обекти.

Човек може също да попита какъв е смисълът на malloc? В C, библиотечната функция malloc се използва за разпределяне на блок памет в хийпа. Програмата осъществява достъп до този блок памет чрез указател, който malloc се завръща. Когато паметта вече не е необходима, указателят се подава за освобождаване, което освобождава паметта, така че да може да се използва за други цели.

По този начин има ли malloc в C++?

Малокът () функция в C++ разпределя а блок от неинициализирана памет и връща а празен указател към на първи байт от на разпределен блок памет, ако на разпределението е успешно. Ако на размерът е нула, на върнатата стойност зависи от на изпълнение на на библиотека. То може или не може да бъде а нулев указател.

Как правите malloc структура?

За това, което искате, имате нужда от двама malloc () с. структура Вектор *y = malloc (размер на *y); /* Забележете показалеца */ y->x = calloc(10, sizeof *y->x); В първия ред заделяте памет за векторен обект. malloc () връща указател към разпределената памет, така че y трябва да бъде векторен указател.