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:
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.//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;
}
#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;
}
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!