• Sábado 14 de Diciembre de 2024, 17:29

Autor Tema:  Tamaño de un puntero pasado por parámetro  (Leído 1410 veces)

cremix

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Tamaño de un puntero pasado por parámetro
« en: Lunes 18 de Mayo de 2009, 18:12 »
0
Hola:

Si tengo esta función, por ejemplo:

int sumatorio(int* vector){...}

Como a la función le paso un array en forma de puntero ¿Cómo puedo calcular, en el cuerpo de esa función, el tamaño de vector?

No puedo hacerlo con sizeof porque entonces me dice, lógicamente, que el array tiene tamaño uno. ¿Hay algún modo de hacerlo?

un saludo

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Tamaño de un puntero pasado por parámetro
« Respuesta #1 en: Jueves 21 de Mayo de 2009, 11:42 »
0
No hay forma de saberlo. C no guarda ninguna información sobre ello en el array. Para C es tna sólo un puntero. De hecho, te dejará acceder a cualquier índice que uses siempre y cuando no te salgas de tu cacho de memoria. Es el programador quien debe saber cuántos elementos tiene el array y controlarlo. Lo que sí puedes hacer es pasarle el número de elementos que contiene como otro parámetro.

cremix

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Tamaño de un puntero pasado por parámetro
« Respuesta #2 en: Jueves 21 de Mayo de 2009, 11:45 »
0
OK. Muchas gracias