Behaviour of Sizeof em C
Aprendi que quando passamos o nome da matriz para sizeof, o nome da matriz não decai para o ponteiro para o endereço base. O código abaixo verifica esse fato, dando a resposta 10.
#include <stdio.h>
int main(){
int arr[10];
printf("Size of array is %d" , sizeof(arr)/sizeof(int));
return 0;
}
No entanto, quando executo o código abaixo, a resposta é 1. Independentemente de uma dimensão ser escrita em protótipo ou não, a resposta é 1. Por que é assi
#include <stdio.h>
void dimension(int arr[]){
printf("Sizof array is %d" , sizeof(arr)/sizeof(int));
}
int main(){
int arr[10];
dimension(arr);
return 0;
}