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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema representación dirección de memoria en C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema representación dirección de memoria en C.  (Leído 2,553 veces)
lanun

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Problema representación dirección de memoria en C.
« en: 28 Febrero 2014, 18:45 pm »

Hola, estoy teniendo un problema al intentar representar una variable hexadecimal en C, concretamente la ubicación de un puntero, pues no puedo utilizar %x, sólo %p (este último no muestra en hexadecimal).
Concretamente, las líneas son éstas:

  int v1;
  v1=4;
  printf("dir_v1=%x v1=%d\n",&v1,v1);

Éste es el error que me lanza:

warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 2 has type ‘int *’

Gracias, probablemente sea alguna tontería, pero es que acabo de empezar a aprender C.


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Problema representación dirección de memoria en C.
« Respuesta #1 en: 28 Febrero 2014, 19:06 pm »

Hola, estoy teniendo un problema al intentar representar una variable hexadecimal en C, concretamente la ubicación de un puntero, pues no puedo utilizar %x, sólo %p (este último no muestra en hexadecimal).
Concretamente, las líneas son éstas:

  int v1;
  v1=4;
  printf("dir_v1=%x v1=%d\n",&v1,v1);

Éste es el error que me lanza:

warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 2 has type ‘int *’

Gracias, probablemente sea alguna tontería, pero es que acabo de empezar a aprender C.

Es simplemente un Warning, lo que haces es pasarle la direccion de una variable en el segundo parametro pero en el formato se espera de tipo
un entero sin signo, el código funcionará sin problemas es simplemente un aviso del compilador si por alguna razon no son esas las intenciones
del programador. se resuelve usando %p o un casting aunque lo mejor seria %p.


En línea

lanun

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema representación dirección de memoria en C.
« Respuesta #2 en: 28 Febrero 2014, 19:24 pm »

Gracias por responder tan rápido, ¿hay alguna forma de evitar ese warning utilizando %x?, básicamente lo digo porque esta duda me ha surgido repasando una asignatura de la universidad, donde hemos utilizado %x en clase sin que diera este error.

Gracias.
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Problema representación dirección de memoria en C.
« Respuesta #3 en: 28 Febrero 2014, 19:25 pm »

Gracias por responder tan rápido, ¿hay alguna forma de evitar ese warning utilizando %x?, básicamente lo digo porque esta duda me ha surgido repasando una asignatura de la universidad, donde hemos utilizado %x en clase sin que diera este error.

Gracias.
usando un casting.
En línea

lanun

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema representación dirección de memoria en C.
« Respuesta #4 en: 28 Febrero 2014, 19:27 pm »

Perdona, pero es que estoy aprendiendo C en estos momentos y no sé a lo que te refieres.

Puede se ésto:
int v4;
  v1=4;
  printf("dir_v1=%p     v1=%d\n",(int*)&v1,v1);

??
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Problema representación dirección de memoria en C.
« Respuesta #5 en: 28 Febrero 2014, 19:28 pm »

Perdona, pero es que estoy aprendiendo C en estos momentos y no sé a lo que te refieres.

Código:
 int v1;
  v1=4;
  printf("dir_v1=%x v1=%d\n",(unsigned int)&v1,v1);
En línea

lanun

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema representación dirección de memoria en C.
« Respuesta #6 en: 28 Febrero 2014, 19:44 pm »

Gracias por la ayuda.
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