Вывод ответа #1864976873

-

помощь новичкам

{autor_name}


{text_rank}
репутация: {repa}
{registration_date}
сообщений: {posts}
{tel_link}
#{postnumber_id}

Ребята помогите при использовании данной программы при больших количестве вариантов переборов около 2*10 в 13 степени происходит непрерывный прирост оперативной памяти , что в конечном итоге приводит к аварийному завершению программы:

#include
#include
#include
#include
#include

using std::cout;
using std::cin;
using std::endl;


class PassGen
{

public:
void displayMessage()
{
unsigned long long passLenght;
unsigned long long numOfPasswords;
char * filename = new char;

cout << "Введите длину пароля для генерации: ";
cin >> passLenght;
cout << "Введите количество паролей для генерации: ";
cin >> numOfPasswords;
cout << "Будет сгенерировано паролей: " << numOfPasswords << "." << endl;
cout << endl;
cout << "Введите имя файла для записи: ";
cin >> filename;

std::ofstream outFile(filename);

for (unsigned long long k = 0; k < numOfPasswords; k++)
{
for (unsigned long long i = 0; i < passLenght; ++i)
{
numOfchars(passLenght);
passGenerator(passLenght);
outFile << password [i];
}
outFile << endl;

}
outFile.close();

cout << "Пароли успешно сгенерированы и записаны в файл " << filename << "" << endl;
cin.get ();
cin.get ();
}

void passGenerator(unsigned long long passLenght)
{
char* password = new char [passLenght];

for (unsigned long long i = 0; i < numOfNumbers; ++i)
{
password [i] = char(rand() % 10 + 48);
}
for (unsigned long long i = numOfNumbers; i < numOfNumbers + numOfBigchars; ++i)
{
password [i] = char(rand() % 26 + 65);
}
for (unsigned long long i = numOfNumbers + numOfBigchars; i displayMessage();
delete [] pass;
delete [] password;
return 0;
}

Подскажите как лучше оптимизировать код и где и как необходимо еще очистить динамическую память , что б это не повлияло на ее работу?


ответ опубликован:
Рейтинг: 5
голосов: 2



Напомнить пароль