Можете ли вы объяснить, как 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