elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero  (Leído 1,544 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero
« en: 9 Junio 2016, 03:02 am »

Hola, gente.
Les dejo un ejemplo de lo que digo en el enunciado y la pregunta es ¿hay alguna diferencia en hacerlo de una manera u otra?, los consulto porque me parece que en ningún Ej. vi como lo hago en la segunda llamada a la función. -

Código
  1. #include <stdio.h>
  2.  
  3. void vector_(int *vt );
  4.  
  5. int main(void) {
  6. int vector[] = {1, 2, 3, 4, 5}, *vt = vector;
  7.  
  8. vector_(vt);
  9. printf( "\n" );
  10. vector_(vector);
  11.  
  12. return 0;
  13.  
  14. }
  15.  
  16.  
  17. void vector_(int *vt ){
  18. size_t i;
  19. for( i=0; i<5; i++){
  20. printf("\n %d", *(vt+i));
  21. }
  22. }
  23.  
Saludos.


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
geeke

Desconectado Desconectado

Mensajes: 93


Ver Perfil
Re: Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero
« Respuesta #1 en: 9 Junio 2016, 03:47 am »

¿hay alguna diferencia en hacerlo de una manera u otra?

Ambos son equivalentes el primer caso es redundante no es necesario pasar un puntero a un array esto se hace por defecto el array siempre decae a puntero al primer elemento cuando lo pasas como parámetro a una función.

Un saludo.


En línea

NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Re: Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero
« Respuesta #2 en: 9 Junio 2016, 16:03 pm »

Hola, geeke.
Muchas gracias por ocuparte, las dudas que me quedan ahora son las siguientes:
Si recibo en a la función el arreglo de esta manera
Código
  1.         void vector_(int vector[] );
¿En la función se crearía una copia de todo el arreglo?
Y la otra es, si tendrían un arreglo con 1000 elementos, ¿de qué manera llamarían a la función y como lo recibirían?.-

Saludos.
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
geeke

Desconectado Desconectado

Mensajes: 93


Ver Perfil
Re: Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero
« Respuesta #3 en: 9 Junio 2016, 17:10 pm »

¿En la función se crearía una copia de todo el arreglo?

No el array no es copiado en su totalidad solo una copia del puntero a su dirección.

¿de qué manera llamarían a la función y como lo recibirían?.-

Código
  1. int f(int array[1000])

Es lo mismo que

Código
  1. int f(int array[])

Código
  1. int f(int *array)

No importa la sintaxis siempre se pasa un puntero
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines