Как реализовать выделение памяти (malloc) через функцию?

Для реализации выделения памяти через функцию в языке программирования C вы можете создать собственную функцию, которая будет использовать встроенную функцию malloc.

Ниже приведен пример кода, который иллюстрирует, как можно реализовать такую функцию:

#include <stdio.h>
#include <stdlib.h>

// Функция для выделения памяти
void* allocate_memory(size_t size) {
    void* ptr = malloc(size); // используем функцию malloc для выделения памяти
    if (ptr == NULL) { // проверяем, удалось ли выделить память
        printf("Не удалось выделить память!");
        exit(EXIT_FAILURE); // если память не удалось выделить, завершаем программу
    }
    return ptr; // возвращаем указатель на выделенную память
}

int main() {
    int* numbers;
    int size;

    printf("Введите размер массива: ");
    scanf("%d", &size);

    numbers = allocate_memory(size * sizeof(int)); // используем пользовательскую функцию для выделения памяти

    printf("Массив выделен успешно!n");

    free(numbers); // освобождаем память, когда она больше не нужна

    return 0;
}

В данном примере у вас есть главная функция allocate_memory, которая принимает в качестве аргумента размер выделяемой памяти в байтах (в данном случае size). Внутри этой функции вы используете функцию malloc, которая выделяет нужное количество памяти в куче. Затем вы проверяете, удалось ли выделить память, и возвращаете указатель на выделенную память.

В основной функции main вы используете эту функцию, чтобы выделить память для массива чисел. Затем вы освобождаете эту память, когда она больше не нужна, с помощью функции free.

Таким образом, вы можете использовать пользовательскую функцию allocate_memory для выделения памяти в своей программе на языке C.