Вам нужно выполнить malloc в C ++?
Вам нужно выполнить malloc в C ++?

Видео: Вам нужно выполнить malloc в C ++?

Видео: Вам нужно выполнить malloc в C ++?
Видео: #51. Функции malloc(), free(), calloc(), realloc(), memcpy() и memmove() | Язык C для начинающих 2024, Апрель
Anonim

Ты использовать маллок когда тебе нужно выделить объекты, которые должен существуют за пределами времени жизни выполнения текущего блока (где копирование при возврате бы тоже быть дорогим), или если вам нужно выделить память больше, чем размер этого стека (то есть: локальный стековый массив размером 3 МБ - плохая идея).

Кроме того, вам нужно выполнить malloc в C ++?

Отличие простое: маллок выделяет память, а new выделяет память И вызывает конструктор объекта ты Выделяем память для. Итак, если ты ограничены C, вам следует никогда не использовать маллок , особенно когда имеешь дело с C ++ объекты.

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

Таким образом, есть ли в C ++ malloc?

Маллок () функция в C ++ выделяет а блок неинициализированной памяти и возвращает а недействительный указатель на в первый байт в выделенный блок памяти, если в распределение выполнено успешно. Если в размер равен нулю, в возвращаемое значение зависит от в реализация в библиотека. Это может или не может быть а нулевой указатель.

Как вы распределяете структуру?

Для того, что вы хотите, вам нужно два маллок () с. структура Вектор * y = маллок (sizeof * y); / * Обратите внимание на указатель * / y-> x = calloc (10, sizeof * y-> x); В первой строке вы выделяете память для объекта Vector. маллок () возвращает указатель на выделенную память, поэтому y должен быть указателем вектора.