Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/05/2015, 13:06
Avatar de xKuZz
xKuZz
 
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 2 meses
Puntos: 27
Respuesta: Punteros y Arrays dinámicos

Supongo que por algún lugar habrá un #include <string> y no entiendo lo que estás haciendo con la N y de dónde sale. De hecho con ese código la N te dará error al compilar

Un puntero es una dirección de memoria para almacenar un dato. Por tanto si tu asignas a un puntero otro dato como tu has hecho no hace lo que tú quieres, de hecho consideraría que lo que hay a la derecha del operador de asignación (=) es una dirección de memoria.

Para acceder o modificar el dato que contiene un puntero utiliza el operador de indirección (*) tal y como te muestro a continuación:

Código C++:
Ver original
  1. for(int i = 0; i < lista.cont; i++){
  2.             *registrosAux[i] = lista.registros[i];//AQUÍ YA NO ERROR 1
  3.         }

Dos aclaraciones básicas:
Modificar dato del puntero
Código C++:
Ver original
  1. int a=1;
  2. int * puntero;
  3. *puntero=2; // Ahora a vale 2
Implicaciones de utilizar el operador de asignación
Código C++:
Ver original
  1. char* letra;
  2. int * puntero;
  3. *letra='H'; // El dato de cadena ahora es H
  4. *puntero=2; // El dato de puntero vale 2
  5. puntero=letra; // Se intenta apuntar con puntero a letra sin embargo no se puede al ser
  6.                        // distintos tipo.

Código C++:
Ver original
  1. char* letra;
  2. char *letra_nueva
  3. *letra='H'; // El dato de cadena ahora es H
  4. *letra_nueva='J'; // El dato vale J
  5. letra=letra_nueva; // Ahora letra apunta a la dirección de memoria de letra_nueva
  6. *letra_nueva='I'; // Como cambie la dirección de memoria si cambio el dato de letra o letra_nueva cambio ambos


Código C++:
Ver original
  1. char* letra;
  2. char *letra_nueva
  3. *letra='H'; // El dato de cadena ahora es H
  4.  
  5. *letra_nueva='J'; // El dato vale J
  6. *letra=*letra_nueva; // Ahora letra coge el valor de letra_nueva
  7. // Si modificase letra_nueva no afectaría a letra