Autor
|
Tema: Funciones adentro de otras con puntero (Leído 2,303 veces)
|
fafafa01
Desconectado
Mensajes: 82
|
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: #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
Mensajes: 3.705
🏴 Libertad!!!!!
|
Las funciones deben estar fuera del main. #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(int *a,int *b,int *c) . . }
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 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
Mensajes: 82
|
ahí corregí el código, me faltaba un paréntesis: lo pude arreglar asiendo esto: #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? #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
Mensajes: 3.705
🏴 Libertad!!!!!
|
En funcion1 cuando llamas a funcion dos no tiens que volver a poner el & ni el * funcion2(&*a,& *b,& *c);
a,b,c ya son apuntadores tienes que mandarla a llamar asi. 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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como llamar funciones de otras dll que no sean de windows?
Programación C/C++
|
SuperNovato
|
4
|
5,063
|
5 Marzo 2011, 01:29 am
por my_sistemas
|
|
|
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
|
lipman
|
9
|
24,055
|
19 Mayo 2011, 23:39 pm
por Littlehorse
|
|
|
Nuevas funciones en Office: ahora Word te ayudará a escribir mejor (y otras ...
Noticias
|
wolfbcn
|
0
|
1,449
|
2 Agosto 2016, 14:32 pm
por wolfbcn
|
|
|
Conoce otras útiles funciones adicionales de Google además de «buscar»
Noticias
|
wolfbcn
|
0
|
4,822
|
8 Octubre 2016, 14:33 pm
por wolfbcn
|
|
|
Paso de funciones a otras funciones
Programación C/C++
|
eaz95
|
1
|
2,481
|
18 Julio 2017, 11:59 am
por ivancea96
|
|