Forethought: Если это необходимо, я могу добавить определение класса. Проблема: я получаю STATUS_ACCESS_VIOLATION всякий раз, когда пытаюсь запустить эту функцию в своей программе. Мне было интересно, что происходит. Я где-то за пределами? Если бы я мог сам это сообразить. Но я не могу понять это в одиночку. Я очень близок к тому, чтобы просто нанять кого-то, чтобы отлаживать меня. Это того стоит. Так или иначе, это нужно пересмотреть и дать немного TLC. Заранее спасибо!Почему эта функция продолжает сбой?
int S_Rend::count(bitset<8> alpha, bitset<8> spec) {
int bn;
vector< bitset<8> > cnt;
bitset<8> curr;
int chmp;
eta = (alpha & spec);
theta = (alpha | spec);
cnt[0] = eta & alpha;
cnt[1] = eta | alpha;
cnt[2] = eta & spec;
cnt[3] = eta | spec;
cnt[4] = theta & alpha;
cnt[5] = theta | alpha;
cnt[6] = theta & spec;
cnt[7] = theta | spec;
cnt[8] = cnt[0] & cnt[5];
cnt[9] = cnt[6] | cnt[1];
cnt[10] = cnt[2] & cnt[7];
cnt[11] = cnt[4] | cnt[3];
for (int i=0;i<11;i++)
for (int j=i;j<=11;j++) {
curr = cnt[i];
if (cnt[j] == curr)
bn++;
if (bn>chmp)
chmp=bn;
}
return chmp;
}
int S_Rend::s_render(ifstream& in, ofstream& out) {
int i, n;
int t;
int chk;
in >> lambda;
in >> size;
in >> delta;
in >> chk;
t=(int&)beta;
int bn=0;
while (size-1>=bn) {
t=s_nop((int&)t,0);
cred.push_back(t);
bn++;
}
if (cred[bn-1]==chk)
cout << "\nValidity Pass... Success!" << endl;
else {
printf("\nValidity Pass...Fail! %u != %u",cred[cred.size()-1],chk);
return 1;
}
cout << "\nWriting to Buffer..." << endl;
i=0;
spec = lambda;
int f;
while (bn-1>=0) {
alpha = (int&)cred[bn-1];
f=count(alpha, spec);
eta = (int&)f;
spec ^= alpha^eta;
btrace.push_back(f);
cout << f << " ";
bn--;
}
cout << "One more second..\n";
while (i<=bn-1) {
delta = (int&)btrace[bn];
out << (const char)(int&)delta;
i++;
}
cout << "\nBuffer Written... Exiting..\n";
in.close();
out.close();
printf("*");
return 0;
}
Когда используется отладчик, который оператор (ы) вызывает проблему? Каковы значения переменных, используемых в инструкции (-ях)? –
Что вы должны делать с такими линиями? 'delta = (int &) btrace [bn];'? Почему вы выполняете задание int? – PaulMcKenzie
Пожалуйста, не повторяйте тот же вопрос снова и снова. Кроме того, [tag: data-mining] - это * not * bitcoin mining, очевидно. –