¿Cómo depositar la dirección de memoria de un puntero?

// Tengo un puntero
char *adress;
//Una direccion de memoria alojada
char *buffer;
buffer = (char*)malloc(4);
// Y un array de bytes
char code [4]={0,0,0,0};
//Mi pregunta es como depositar el valor del puntero adress
//Que serán 4 octetos, en la memoria y en el array de bytes.
//No intenten entenderlo el por qué quiero esto, ya se que parece ilógico...
Respuesta
1
No entiendo realmente lo que pides...
¿Te refieres a como asignar el valor de adress al array?
Pues para obtener los 8 bits más significativos de adress divide entre 0x1000000 y te quedas con la parte entera (esto ultimo no creo que tenga sentido decirlo ya que son cifras hexadecimales)... espero que te sirva de ayuda
Para obtener el resto es seguir un proceso análogo solo que antes tienes que restarle lo que has obtenido en el paso anterior multiplicado por el numero por el que has dividido.
Tengo un puntero
char *adress;
y una memoria alojada
char *buffer;
buffer=(char*)malloc(4);
Partiendo de que un puntero es una dirección de memoria
y en sistemas de 32 bits serán 4 octetos / 4 bytes
Deseo saber como enviar a la memoria creada con malloc
los 4 octetos del puntero ( y no el valor de lo que el puntero apunte ).
Es decir el puntero tendrá un número de 32 bits.
Si printf("Puntero = %x",adress);
Me devuelve 0x00bc0000
Si lo consiguiera entonces en la memoria buffer
tendría {00,00, bc, 00}
Pero claro printf() no es más que ilustrativo y para
nada funcional.
Perdonad mi insistencia... estoy atascado.
Sería algo así como :
*(buffer) = &adress
Pero no es la gramática adecuada...
Pues me da la sensación de que la respuesta es la que ya te he dado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas