Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/04/2013, 09:03
Avatar de dontexplain
dontexplain
 
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 6 meses
Puntos: 127
Respuesta: Almacenar y recopilar un array de strings en C++

Realmente tendría que ser entre adivino y genio para saber qué pides. Si usas el contenido addr de un objeto dsmdata estás usando el puntero, para poder copiarlo tendrías que dereferenciar * y copiar la dereferenciación mediante el operador & en el argumento de la función que fuera. Mientras no lo hagas estarás manejando el puntero y no el dato en sí, que a bajo nivel sigue siendo un puntero a la primera dirección de memoria. La diferencia a bajo nivel entre un puntero y un dato es

Código C++:
Ver original
  1. int x = 3;
  2. int * a = &x;

Código Seudocódigo Intel:
Ver original
  1. mov [x], 0x03 //32b
  2. lea eax, [x]
  3. mov [a], eax //32b

si x fuera 34b20102, [x] es el contenido que hay en 34b20102
a sería 1242af33 y [a] el contenido que haya en 1242af33, que es 34b20102

Código RAM:
Ver original
  1. 34b20102   03 cc cc cc cc cc cc cc cc cc  
  2. ....
  3. 1242af33   02 01 b2 34 cc cc cc cc cc cc

cc es nada. La diferencia entonces entre un dato y un puntero es que el puntero hace que se almacene en una dirección de memoria otra dirección de memoria, como el segundo caso donde en 1242af33 ([a])se almacenaba 34b20102.


Espero que lo hayas entendido.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 04/04/2013 a las 09:31