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

-

Программирование на С++



Репутация:

ответов

355 # 351 | на сайте с 1970 года

Ребята помогите при использовании данной программы при больших количестве вариантов переборов около 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;
}

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

Репутация: 317

2253 ответов

355 # 352 | на сайте с 2005 года | последнее посещение: 03:00 1 янв 1970

Это только часть кода, которая еще отфильтрована форумом - оно даже не компилится.
По этому куску мало что понятно. Может только что вконце есть цикл, в котором каждый раз вызывается displayMessage(), внутри которого создается и не удаляется char * filename = new char.
Может для строк std::string?

Репутация: 52

14 ответов

355 # 353 | на сайте с 2008 года | последнее посещение: 03:00 1 янв 1970

Всем привет! Ребят подкиньте простеньких исходников на С++ с коментами на русском. Начал только учить. Юзаю Visual Studio 2012

Репутация: 102

192 ответов

355 # 354 | на сайте с 2007 года | последнее посещение: 03:00 1 янв 1970

Насколько простых? Когда-то писал игрушку для курсовой, могу кинуть. Сложного особо нет ничего. Правда писался в среде Borland C++ Builder 6, но разобраться несложно, вся графика рисуется на Canvas'e через компонент TImage, ну и пара лейблов. Ничего особо сложного. Если интересует - пиши в личку, кину.

Репутация: 488

2338 ответов

355 # 355 | на сайте с 2006 года | последнее посещение: 03:00 1 янв 1970

Страуструпа возьми, и задания выполняй. Ты главное читать не забывай.


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