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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Funciones adentro de otras con puntero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Funciones adentro de otras con puntero  (Leído 1,857 veces)
fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Funciones adentro de otras con puntero
« en: 12 Mayo 2016, 14:56 pm »

Buenos días, como dice el titulo, hice un programa desde donde pasas la dirección de la variable como parámetros en una función, y dentro de esa función, los parámetros se van a usar de nuevo como  parámetros en otra función.

mi problema es que el compilador me dice que tiene un error y creo que es por la sintaxis:

acá va un ejemplo de la sintaxis:

Código:
#include <stdio.h>

void funcion1(int *, int *,int *);
void funcion2(int *,int *,int *);

void main(void) {
int a=b=c=0;
funcion1(&a,&b,&c);
}

funcion1 (int *a,int *b, int *c) {
.
.
.
funcion2(*a,*b,*c);
.
.
}

funcion2(int *a, int *b, int *c) {
.
.
.
}

saludos y gracias.


« Última modificación: 12 Mayo 2016, 16:00 pm por fafafa01 » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Funciones adentro de otras con puntero
« Respuesta #1 en: 12 Mayo 2016, 15:08 pm »

Las funciones deben estar fuera del main.

Código
  1. #include <stdio.h>
  2.  
  3. void funcion1(int *, int *,int *);
  4. void funcion2(int *,int *,int *);
  5.  
  6. void main(void) {
  7.  int a=b=c=0;
  8.  funcion1(&a,&b,&c);
  9. }
  10.  
  11. funcion1 (int *a,int *b, int *c) {
  12. .
  13. .
  14. .
  15. }
  16. funcion2(int *a,int *b,int *c)
  17. .
  18. .
  19. }
  20.  

El nombre las variables de las funciones 1 y 2 no tiene que ser el mismo. eso te ayudara a entender el paso por referencia con los apuntadores. para guardar un valor en la variable dentro de la funcion tienes que usar

Código
  1. a[0] = 1337;

y cuando retornes al main a ya va a valer 1337.

Saludos


« Última modificación: 12 Mayo 2016, 15:12 pm por AlbertoBSD » En línea

fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: Funciones adentro de otras con puntero
« Respuesta #2 en: 12 Mayo 2016, 15:58 pm »

ahí corregí el código, me faltaba un paréntesis:

lo pude arreglar asiendo esto:

Código:
#include <stdio.h>

void funcion1(int *, int *,int *);
void funcion2(int *,int *,int *);

void main(void) {
int a=b=c=0;
funcion1(&a,&b,&c);
}



funcion1 (int *a,int *b, int *c) {
.
.
.
funcion2(&*a,&*b,&*c);
.
.
}


  
funcion2(int *a, int *b, int *c) {
.
.
.
}


pero no entiendo muy bien:

si yo quisiera escribir 2 printf en la función 1, después de haber invocado la función 2 ¿que diferencias hay entre los dos printf del codigo?

Código:
#include <stdio.h>

void funcion1(int *, int *,int *);
void funcion2(int *,int *,int *);

void main(void) {
int a=b=c=0;
funcion1(&a,&b,&c);
}

funcion1 (int *a,int *b, int *c) {
.
.
.
funcion2(&*a,& *b,& *c);
printf(" %d  %d  %d ",*a,*b,*c);
printf(" %d  %d  %d ",*(*a),*(*b),*(*c));
.
}

funcion2(int *a, int *b, int *c) {
.
.
.
}
« Última modificación: 12 Mayo 2016, 16:00 pm por fafafa01 » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Funciones adentro de otras con puntero
« Respuesta #3 en: 12 Mayo 2016, 16:19 pm »

En funcion1 cuando llamas a funcion dos no tiens que volver a poner el & ni el *

Código
  1. funcion2(&*a,& *b,& *c);

a,b,c ya son apuntadores tienes que mandarla a llamar asi.

Código
  1. funcion2(a,b,c);
.

Creo que no tienes muy claro que es un apuntador y que es una direccion de memoria.
« Última modificación: 12 Mayo 2016, 16:22 pm por AlbertoBSD » 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