¿Cómo funciona sizeof (array) en tiempo de ejecución?
He leído que el operador sizeof en C se interpreta en tiempo de compilación y como el compilador en tiempo de compilación sabe el tamaño de la matriz y su tipo, sizeof puede calcular el número de bytes ocupados por la matriz. Pero, ¿cómo funciona sizeof para el siguiente 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>
Aquí no se conoce el tamaño de la matriz en el momento de la compilación, entonces, ¿cómo funciona correctamente?