LINUX.ORG.RU

История изменений

Исправление tyamur, (текущая версия) :

Все правильно сказал пользователь который удалился.


void test(int arr[]){

printf("%d\n",sizeof(arr)/sizeof(int));

}


void main(){

int arr[] = {10,20,30,40,50};

printf("%d\n",sizeof(arr)/sizeof(int));

test(arr);
}

sizeof(arr) в main выдаст 20 (байт). В функции тест выдаст 4. так как будет расматривать не как массив а как указатель.


$gcc main.c -o main && ./main
$5
$1

Исходная версия tyamur, :

Все правильно сказал пользователь который удалился.


void test(int arr[]){

printf("%d\n",sizeof(arr)/sizeof(int));

}


void main(){

int arr[] = {10,20,30,40,50};

printf("%d\n",sizeof(arr)/sizeof(int));

test(arr);
}

sizeof(arr) в main выдаст 20 (байт). В функции тест выдаст 4. так как будет расматривать не как массив а как указатель.