Не понимаю как работает 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;
}
Я понимаю как работает функции для выделения памяти, но как это работает с структурами я не могу понять.