我的代码行抛出异常: (抛出未处理的异常:写入访问冲突。 this-> v是0x443E112)
v[i] = v[i - k];
在下面的函数中:
void NagyEgesz::eltolJobbra(int k) {
this->n = this->n + k;
for (int i = n-1; i >= k ; i++) {
v[i] = v[i - k];
}
for (int j = 0; j < k; j++) {
v[j] = 0;
}
以下是该类的声明:
class NagyEgesz{
int *v;
int n;
int elojel;
public:
NagyEgesz();
NagyEgesz(int elojel, int n, const int* szamjegyek);
NagyEgesz(const NagyEgesz &x);
~NagyEgesz() {
delete v;
}
void kiir();
void eltolJobbra(int k);
NagyEgesz osszead(const NagyEgesz &x);
};
答案 0 :(得分:1)
这看起来像一个相反的循环:
for (int i = n-1; i >= k ; i++) {
因此,您应该将i++
替换为i--
提示将来发现类似的问题:write access violation
通常意味着数组索引中的拼写错误