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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


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

Desconectado Desconectado

Mensajes: 5


Ver Perfil
punteros en c.
« en: 1 Mayo 2016, 01:40 am »

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!
pd: si envié en más de un lugar el mismo mensaje, lo siento, fue sin querer


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.697


🏴 Libertad!!!!!


Ver Perfil WWW
Re: punteros en c.
« Respuesta #1 en: 1 Mayo 2016, 06:01 am »

Sin que el puntero apunte a esa variable no lo veo viable, a no ser que se trate de algun overflow... que seria en teoria lo mismo

Código
  1. #include<stdio.h>
  2.  
  3. int main() {
  4. int i = 2;
  5. char *ptr;
  6. printf("valor de i %i\n",i);
  7. ptr = (char *) &i;
  8. ptr[2] = 'A';
  9. printf("valor de i %i\n",i);
  10. }


« Última modificación: 1 Mayo 2016, 14:43 pm por AlbertoBSD » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: punteros en c.
« Respuesta #2 en: 1 Mayo 2016, 10:22 am »

Sí que se puede, lo que debes convertir el literal en un puntero mediante casting. Al fin y al cabo obtienes un puntero creado exproceso y C lo tratará como tal.

Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.    printf("%p", (int*)0xa30b);
  5.  
  6.    return 0;
  7. }
« Última modificación: 1 Mayo 2016, 10:26 am por MAFUS » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
punteros
Programación Visual Basic
bautistasbr 4 2,120 Último mensaje 30 Septiembre 2005, 19:35 pm
por NYlOn
Duda Punteros Dobles/Array de punteros
Programación C/C++
MisterJava 2 4,950 Último mensaje 30 Diciembre 2012, 20:19 pm
por MisterJava
Punteros dobles / Punteros a puntero.
Programación C/C++
NOB2014 5 7,986 Último mensaje 13 Abril 2016, 16:00 pm
por MAFUS
Punteros en c++ « 1 2 »
Programación C/C++
Julia13 12 7,061 Último mensaje 7 Junio 2021, 15:11 pm
por H4cker K
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines