diff --git a/guide/russian/c/malloc/index.md b/guide/russian/c/malloc/index.md index 154290d282..371d714369 100644 --- a/guide/russian/c/malloc/index.md +++ b/guide/russian/c/malloc/index.md @@ -1,42 +1,41 @@ --- title: malloc -localeTitle: таНос +localeTitle: malloc --- # malloc в C -malloc () - это библиотечная функция, которая позволяет C динамически выделять память из кучи. Куча - это область памяти, где что-то хранится. +malloc() - это библиотечная функция, которая позволяет C динамически выделять память из кучи. Куча - это область памяти, реализующая динамическое хранение с ручным управлением. -malloc () является частью stdlib.h и для его использования вам необходимо использовать `#include ` . +malloc() является частью stdlib.h и для его использования вам необходимо подключить `#include ` . -## Использование Malloc +## Использование malloc -malloc () выделяет память запрошенного размера и возвращает указатель на начало выделенного блока. Чтобы удерживать этот возвращенный указатель, мы должны создать переменную. Указатель должен быть того же типа, что и в инструкции malloc. -Здесь мы сделаем указатель на скоро будущий массив ints +malloc() выделяет память запрошенного размера и возвращает указатель на начало выделенного блока. Чтобы запомнить этот возвращенный указатель, мы должны создать переменную. Давайте создадим указатель на пока не существующий массив целых чисел (тип int). ```C int* arrayPtr; ``` -В отличие от других языков, C не знает тип данных, на который он выделяет память; это нужно сказать. К счастью, C имеет функцию, называемую `sizeof()` которую мы можем использовать. +Результат malloc будет автоматически приведен к используемому нами типу указателя. В отличие от других языков, C не знает тип данных, на который он выделяет память; malloc знает лишь количество байт, который необходимо выделить. К счастью, в C есть функция `sizeof()`, которая может нам помочь. ```C -arrayPtr = (int *)malloc(10 * sizeof(int)); +arrayPtr = malloc(10 * sizeof(int)); ``` -Этот оператор использовал malloc для выделения памяти для массива из 10 целых чисел. Поскольку размеры могут меняться между компьютерами, важно использовать функцию sizeof () для вычисления размера на текущем компьютере. +Этот оператор использует malloc для выделения памяти для массива из 10 целых чисел. Поскольку размеры могут различаться на разных компьютерах, важно использовать функцию sizeof() для вычисления размера на текущем компьютере. -Любая память, выделенная во время выполнения программы, должна быть освобождена до закрытия программы. Чтобы `free` память, мы можем использовать функцию free () +Память, выделенная во время выполнения программы, должна быть освобождена до ее закрытия. Чтобы освободить память, используется функция free() ```C free( arrayPtr ); ``` -Этот оператор освободит ранее выделенную память. C не поставляется с `garbage collector` как некоторые другие языки, такие как Java. В результате память, которая не была должным образом освобождена, будет продолжать выделяться после закрытия программы. +Этот оператор освободит ранее выделенную память. В C нет встроенного сборщика мусора, как в некоторых других языках, напр. в Java. В результате память, которая не была должным образом освобождена, будет оставаться выделенной после закрытия программы. # Прежде чем продолжить ... ## Обзор -* Malloc используется для динамического распределения памяти и полезен, когда вы не знаете объем памяти, необходимый во время компиляции. +* malloc используется для динамического выделения памяти и полезен, когда вы во время компиляции не знаете объем памяти, который будет необходим. * Выделение памяти позволяет объектам существовать за пределами текущего блока. -* C передает значение вместо ссылки. Использование malloc для назначения памяти, а затем передать указатель на другую функцию, более эффективно, чем функция, воссоздающая структуру. \ No newline at end of file +* C передает значение вместо ссылки. Использование malloc для назначения памяти с последующей передачей указателя в другую функцию более эффективно нежели воссоздание этой структуры в самой функции.