Почему компилятор не выдает ошибку аллоцирования памяти?
Почему компилятор(MinGW gcc 6.3) не выдает ошибку у кода ниже? Ведь по хорошему, что бы скомпилировать программу он должен знать сколько памяти она занимает, либо память должна динамически выделяться. Но в данном случае, ни одного, ни другого не происходит. Я просмотрел файл с расширением .s, но там тоже нет неявного вызова malloc. В общем, видимо я чего-то не понимаю.
#include <stdio.h>
int main()
{
int quantity_of_elements;
printf("Enter the number of array elements: ");
scanf("%d", &quantity_of_elements);
int array[quantity_of_elements];
for(int i = 0; i < quantity_of_elements; i++) {
array[i] = 0;
}
printf("%d", sizeof(array));
return 0;
}