Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/07/2011, 11:09
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Duda con Punteros.

El problema que tienes es el siguiente. sizeof es una funcion en tiempo de compilacion. Se calcula antes de compilar el programa.
Por eso el compilador en la funcion ubound sizeof(arr) devuelve 4. Ya que en ese ambito el array es simplemente un puntero.
En cambio en la funcion main cuando declaras un array asi a[4]; ahi se asigna memoria y el nombre a es solo ficticio. No existe en memoria el puntero, solo los datos. De esta forma el compilador calcula 12 para su longitud.

Espero que entiendas la explicacion y veas los limites del uso del sizeof. Saludos