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 originalfor(int i = 0; i < lista.cont; i++){
*registrosAux[i] = lista.registros[i];//AQUÍ YA NO ERROR 1
}
Dos aclaraciones básicas:
Modificar dato del puntero
Código C++:
Ver originalint a=1;
int * puntero;
*puntero=2; // Ahora a vale 2
Implicaciones de utilizar el operador de asignación
Código C++:
Ver originalchar* letra;
int * puntero;
*letra='H'; // El dato de cadena ahora es H
*puntero=2; // El dato de puntero vale 2
puntero=letra; // Se intenta apuntar con puntero a letra sin embargo no se puede al ser
// distintos tipo.
Código C++:
Ver originalchar* letra;
char *letra_nueva
*letra='H'; // El dato de cadena ahora es H
*letra_nueva='J'; // El dato vale J
letra=letra_nueva; // Ahora letra apunta a la dirección de memoria de letra_nueva
*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 originalchar* letra;
char *letra_nueva
*letra='H'; // El dato de cadena ahora es H
*letra_nueva='J'; // El dato vale J
*letra=*letra_nueva; // Ahora letra coge el valor de letra_nueva
// Si modificase letra_nueva no afectaría a letra