При запуске программы C++ возвращает число -1073741819
Ошыбка: Вызвано исключение по адресу 0x00007FF9B3EB7A20 (ucrtbased.dll) в Find Pass.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFFFFFFFFFFFFFFFF.
Код:
#include <string>
#include <fstream>
#include <cmath>
using namespace std;
int main()
{
int l, i;
int step = 0;
cout << "Lenght:";
cin >> l;
cout << endl;
string PassV = "";
const char* AllSymb[] = { "Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","J","I","H","G","F","E","D","C","B","A","z","y","x","w","v","u","t","s","r","q","p","o","n","m","l","k","j","i","h","g","f","e","d","c","b","a","!","#","$","&","(",")","*","+",",","-",".","/",":",";","<",">","=","@","?","[","]","\\","^","_","`","{","}","|","~" };
int IndArr[15] = {};
int l_Arr = sizeof(AllSymb) / sizeof(*AllSymb);
for (i = 0; i <= l-1; i++) { IndArr[i] = 0; }
while (step != pow(l_Arr , l)) {
for (i = 0; i <= l_Arr; i++)
{
PassV = "";
for (i = 0; i <= l-1; i++)
{
PassV += AllSymb[IndArr[i]];
}
IndArr[0] += 1;
cout << PassV << endl;
step += 1;
}
for (i = 0; i <= l-1; i++)
{
if (l_Arr == IndArr[i]) {
IndArr[i + 1] += 1;
IndArr[i] = 0;
}
}
}
return 0;
}
Код должен быстро перебирать возможные варианты паролей из символов данных в массиве AllSymb. Количество символов задается пользователем.
Источник: Stack Overflow на русском