Como sizeof (array) funciona em tempo de execução?
Eu li que sizeof operador em C é interpretado em tempo de compilação e desde em compilador de tempo de compilação sabe o tamanho da matriz e seu tipo, sizeof é capaz de calcular o número de bytes ocupados pela matriz.Mas como é sizeof trabalhando para o seguinte código:
<code> #include<stdio.h> #include<string.h> int main() { int n; scanf("%d",&n); int a[n]; int s=sizeof(a); printf("%d",s); return 0; } </code>
Aqui o tamanho do array não é conhecido em tempo de compilação, então como ele está funcionando corretamente?