Poruqe en este ejemplo:
Código C++:
Ver originalint f (int v []){
return (sizeof (v)/sizeof(int));
}
v es un puntero y todo puntero tiene tamañano de 4 bytes. Asi que olvidate de eso. Tienes que hacerlo a mano. Guardar el tamaño del vector aparte. Es mi recomendacion.
Esa tecnica solo funciona si el vector esta definido asi int v[10]; y solo funciona en la funcion o ambito en el cual este definido. Si lo pasas a otra funcion solomente pasas el puntero no todo el vector.