C++ 为什么这个抛出acces违例异常?
我的这行代码引发异常: (引发未处理的异常:写入访问冲突。 此->v为0x443E112) 在下面的函数中:C++ 为什么这个抛出acces违例异常?,c++,oop,C++,Oop,我的这行代码引发异常: (引发未处理的异常:写入访问冲突。 此->v为0x443E112) 在下面的函数中: 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+
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;
}
这看起来像一个相反顺序的循环:
for (int i = n-1; i >= k ; i++) {
因此,您应该将i++
替换为i--
今后发现类似问题的提示:
写入访问冲突
通常意味着数组索引中的键入错误请发布一个。您给出的代码不完整。例如,您没有显示分配v
数组的位置。
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);
};
for (int i = n-1; i >= k ; i++) {