Autor Tema: Punteros en c (lenguajec) establecer manualmente a una dirección de memoria  (Leído 2296 veces)

aggv1106

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Hola!  tengo una consulta sobre punteros, la cuestión es como sigue: se que los punteros sirven para acceder a direcciones de memoria de variables o arreglos etc, mi pregunta es: ¿se puede modificar el valor de una variable (o arreglo) de forma manual?

Por ejemplo...si se que  la direccion 0028FF14 almacena un entero igual a 2, se puede escribir un código que cambie el valor de esa variable sin escribir *p=x ? (x es un número cualquiera ), es decir un código que más o menos diga "el valor de la variable en la posición 0028FF14 = x o algo así,creo que se entiende a lo que me refiero con lo de "forma manual". Se que esto no es para nada recomendable, pero necesito saber si es esto posible o no.

Desde ya gracias!
« Última modificación: 03 de Mayo 2016, 10:00 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenos días, lo que planteas sí se puede hacer (de hecho una de las cosas que hacen potente a C es el permitir acceder y manipular la memoria a un relativamente bajo nivel) aunque no se suele recomendar que se trabaje con este tipo de cosas si no se tiene un buen conocimiento de lo que se hace, ya que puedes generar daños en el computador si haces manipulaciones incorrectas.

Suponiendo que la dirección de memoria fuera 0x28ff44 podrían realizarse direccionamientos a esta dirección así:

void * p = (void *)0x28ff44;

O también con otro tipo de datos según a qué estés referenciando, por ejemplo char * p = (char *)0x28ff44;

Si se quiere evitar que el direccionamiento pueda ser cambiado a posteriori se añadiría const:

const void * p = (const void *)0x28ff44;

ó

const char * p = (const char *)0x28ff44;

etc.

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".