Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2015, 03:19
MartinUslenghi
 
Fecha de Ingreso: enero-2015
Mensajes: 1
Antigüedad: 9 años, 4 meses
Puntos: 0
Exclamación !!Arreglos Dinámicos - Ejercicio Contraseñas (Infracción de acceso al leer ubicación)

Hola! Agradecería su ayuda en un problema que me surgió realizando unos ejercicios de programación... La consigna es un tanto más compleja, sin embargo tengo problemas en uno de los pasos a seguir que indica crear arreglos dinámicos.

La idea es que el usuario ingrese un número en la consola con la cantidad de contraseñas que desea registrar (CantidadContr) y luego escribir una por linea. Estas deben ser guardadas en un arreglo para poder luego ordenarlas alfabéticamente y asignarles un determinado número segun cumplan o no determinadas condiciones.

Les muestro mi codigo fuente.

Cita:
//Instrucciones del Preprocesador
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <sstream>
using namespace std;
using std::getline;
//Declaración de Variables


unsigned int CantidadContr;


// Declaración de Funciones

struct Contraseña{
string FrasePass;
};

Contraseña* Registro = NULL;

void AlmacenarContr(unsigned int A)
{
Contraseña _Contraseña;

int i = 0;
while (i<=A)
{

getline(cin, _Contraseña.FrasePass);

if (Registro = NULL){

Registro = new Contraseña[1];
Registro[0] = _Contraseña;
i++;
}
else {
Contraseña* temp = Registro; //Aloja mi arreglo en una variable auxiliar temporal
Registro = new Contraseña[i+1]; // Cambia la cantidad de elementos en el arreglo LISTA
for (unsigned int z = 0; z < i; z++){ // Con un bucle FOR pasa todo los elementos de TEMP hacia Lista
Registro[z] = temp[z];
}
Registro[i] = _Contraseña;
i++;
delete[] temp;
}
}

}


int _tmain(int argc, _TCHAR* argv[])
{
cin >> CantidadContr;
AlmacenarContr(CantidadContr);
cin.get();
return 0;
}

El problema obviamente está en la función AlmacenarContr, posiblemente en el bucle de iterador "z"... Pero no logro descifrar que es lo que hice mal, disculpen mi ignorancia.

Me salta error diciendo "infracción de acceso al leer la memoria". He estado intentando depurar el codigo desde la madrugada y no pude. Desde ya agradezco su comprensión y agradezco cualquier tipo de ayuda!