sizeof () массива случайной длины

Вы можете объяснить, как sizeof () работает с массив случайной длины? Я думал, что sizeof () для массива вычисляется во время компиляции, однако размер массива со случайной длиной, кажется, вычисляется правильно.

Пример:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(){
    srand ( (unsigned)time ( NULL ) );
    int r = rand()%10;
    int arr[r]; //array with random length
    printf("r = %d size = %d\n",r, sizeof(arr)); //print the random number, array size
    return 0;
}

Результат нескольких запусков:

r = 8 size = 32
r = 6 size = 24
r = 1 size = 4

Компилятор: gcc 4.4.3

11
задан Graham Borland 17 August 2011 в 13:48
поделиться