Autor
|
Tema: [C] (void*) ¿Para qué sirve? (Leído 2,995 veces)
|
GGZ
Desconectado
Mensajes: 144
|
Hola a todos!, ¿para que sirve usar (void*) ahí? #include <stdio.h> void imprimir_dir(int x) { printf("La direccion de memoria de a es: %p.\n", (void*) &x ); } int main(void) { int n; printf("Introduzca un valor entero: "); printf("La direccion de memoria de a es: %p.\n", (void*) &n ); imprimir_dir(n); return 0; }
¿Qué pasa si yo hago esto? /* Definir una simple función imprimir_dir(int x) cuyo único propósito sea imprimir la dirección del entero x que se le pasa. Crear una variable entera en main, imprimir su dirección ahí mismo y luego pasar la variable a imprimir_dir. Comparar los resultados. ¿Es el comportamiento esperado? */ #include <stdio.h> void imprimir_dir(int x){ } int main (void){ int a; a=20; imprimir_dir(a); return 0; }
Lo que se me pide es: Definir una simple función imprimir_dir(int x) cuyo único propósito sea imprimir la dirección del entero x que se le pasa. Crear una variable entera en main, imprimir su dirección ahí mismo y luego pasar la variable a imprimir_dir. Comparar los resultados. ¿Es el comportamiento esperado?Saludos!
|
|
« Última modificación: 18 Noviembre 2015, 16:03 pm por nisteeklod »
|
En línea
|
LET'S DO STUFF!!
|
|
|
DarK_FirefoX
Desconectado
Mensajes: 1.263
Be the change you wanna see in te world
|
Una función que retorna, devuelve un valor u objeto. Por ejemplo, la función "atoi(char*)", coge una cadena, y la transforma en un int. char s[] = "21";
"atoi" retorna el entero 21. Las funciones void, simplemente no retornan. Hacen un trabajo, el que sea, y no devuelve nada.En tu caso, tu función no es necesario que devuelva nada, pues solo va a imprimir una texto en consola. Piensa: ¿De que te sirve devolver un valor si no lo vas a capturar cuando llames a la función? Salu2s
|
|
|
En línea
|
|
|
|
GGZ
Desconectado
Mensajes: 144
|
Si eso si lo sé, a eso no me refiero, me refiero al (void*) que está adentro printf, no como está definida la función.
¿O entendí mal?
|
|
|
En línea
|
LET'S DO STUFF!!
|
|
|
geeke
Desconectado
Mensajes: 93
|
¿para que sirve usar (void*) ahí?
El especificador de formato %p espera un argumento de tipo void*, por lo tanto es necesario el cast. ¿Qué pasa si yo hago esto?
Al omitir el cast tu aplicacion queda expuesta a comportamiento indefinido.
|
|
« Última modificación: 18 Noviembre 2015, 19:31 pm por Coper »
|
En línea
|
|
|
|
DarK_FirefoX
Desconectado
Mensajes: 1.263
Be the change you wanna see in te world
|
Si eso si lo sé, a eso no me refiero, me refiero al (void*) que está adentro printf, no como está definida la función.
¿O entendí mal?
Perdón! No había visto esto ^^ Sigue lo que dice @CoperSalu2s
|
|
|
En línea
|
|
|
|
GGZ
Desconectado
Mensajes: 144
|
Entendido, muchas gracias.
|
|
|
En línea
|
LET'S DO STUFF!!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
dev-c++ ----> ¿void?
Programación C/C++
|
lalocr
|
7
|
18,531
|
21 Abril 2011, 11:05 am
por <<<-Basura->>>
|
|
|
Nuevo estudio confirma para qué sirve censurar las webs de enlaces: Para nada
Noticias
|
wolfbcn
|
0
|
1,843
|
17 Abril 2012, 18:42 pm
por wolfbcn
|
|
|
APORTE : Lo que sirve y lo que no sirve para crear usb booteables
GNU/Linux
|
lucaslopez0000
|
1
|
5,580
|
7 Enero 2013, 03:41 am
por Ronald23
|
|
|
Una tecnología para rastrear el movimiento de enemigos sirve de base para que...
Noticias
|
wolfbcn
|
0
|
2,225
|
19 Julio 2013, 02:24 am
por wolfbcn
|
|
|
como declaro una variable en un void para que varie?
Programación C/C++
|
AXA
|
3
|
3,007
|
25 Octubre 2021, 13:51 pm
por MAFUS
|
|