malloc() - функция языка Си


#include <stdlib.h>
void * malloc(size_t size_in_bytes);
// size_in_bytes - Размер памяти требуемый для выделения, в байтах.
// Возвращаемое значение - указатель на начало блока непрерывной выделенной памяти. Или ноль в случае неудачи.

Функция void* malloc(int size) выделяет непрерывный блок памяти на size байт и возвращает указатель на начало этой памяти. Если память не выделена то возвращается нулевой указатель.

Тип данных size_t это целочисленный беззнаковый тип данных принимаемый оператором sizeof(), его значение зависит от разрядности операционной системы 32 или 64 бита и максимальное значение определяет максимальный размер массива.


#include <stdio.h> //printf()
#include <stdlib.h> // malloc(), free()
int main(){
    const int SIZE = 10; // Размер массива
    int *ar = malloc(SIZE * sizeof(int)); // Выделяем память под SIZE int
    for(int i = 0; i < SIZE; i++){
        ar[i] = i * i; // Инициализируем массив
    }
    for(int i = 0; i < SIZE; i++){
        printf("%d ", ar[i]); // Используем массив
    }
    free(ar); // Освобождаем память выделенную под ar
}
2023-03-08



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

Статические и динамические массивы в языке Си. Описание и примеры кода.

#include void * malloc(size_t size_in_bytes); // size_in_bytes - Размер памяти требуемый для выделения, в байтах. // Возвращаемое значение - указатель на начало блока непрерывной выделенной памяти. Или ноль в случае неудачи.
memccpy() функция языка Си. Копирование блока памяти с поиском символа.
memcpy() функция языка Си. Копирование области памяти.
memmove() функция языка Си. Перемещение областей памяти.
restrict ключевое слово языка Си.
sizeof оператор в языке Си. Узнать размер переменной.