Comportamiento de Sizeof en C
He aprendido que cuando pasamos el nombre de la matriz a sizeof, el nombre de la matriz no decae al puntero a la dirección base. El siguiente código verifica este hecho al dar la respuesta 10.
#include <stdio.h>
int main(){
int arr[10];
printf("Size of array is %d" , sizeof(arr)/sizeof(int));
return 0;
}
Sin embargo, cuando ejecuto el siguiente código, la respuesta es 1. Independientemente de si una dimensión está escrita en prototipo o no, la respuesta es 1. ¿Por qué es así?
#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;
}