Duplicar posible:
sizeof array of structs in C?
sizeof an array passed as function argumentC - int sizeof gama siempre devuelve 4
Sólo tratando de escribir una función básica sum()
.
int sum(int arr[]) {
int total = 0 , i = 0 , l = sizeof arr;
for(i=0;i<l;i++) {
total += arr[i];
}
return total;
}
l
siempre equivale a 4 (sé que dividir el tiempo por sizeof int
)
Correr Dev-C++ con las opciones del compilador por defecto en Windows 7.
'arr' es un puntero, no una matriz. La sintaxis que utiliza en la declaración de la función es simplemente llamativa para 'int sum (int * arr)'. Le recomendamos leer la sección 6 de las [preguntas frecuentes sobre comp.lang.c] (http://c-faq.com/). – pmg
compile en/para una máquina de 64 bits, debería ver 8 ya que está mirando el tamaño del puntero, no el tamaño de la matriz. –