Не понимаю как работает malloc с структурой?

Пытаюсь создать стек по гайду : https://prog-cpp.ru/data-stack/. Не могу понять как работает данная строка :

    stk = (struct stack*)malloc(sizeof(struct stack));

Весь код:

    int main() {
    struct stack *stk;
    int i,n;
    float elem;
    stk = (struct stack*)malloc(sizeof(struct stack));
    init(stk);
    printf("Введите количество элементов в стеке: ");
    scanf("%d", &n);
    for(i=0; i<n; i++) {
        printf("Введите элемент %d:", i);
        scanf("%f", &elem);
        push(stk,elem);
    }
    printf("В стеке %d элементов\n\n", getcount(stk));
    stkPrint(stk);
    printf("Верхний элемент %f\n",stkTop(stk));
    do {
        printf("Извлекаем элемент %f, ", pop(stk));
        printf("в стеке осталось %d элементов\n", getcount(stk));
    } while(isempty(stk) == 0);
    getchar(); getchar();
    return 0;
}

Я понимаю как работает функции для выделения памяти, но как это работает с структурами я не могу понять.


Ответы (0 шт):