抛出异常:读取访问冲突 **this**

时间:2021-02-15 10:56:21

标签: c++

我试图对包含传递给函数的对象的两个单独数组进行排序,以便找到最高薪水。我以为我已经弄明白了,但后来我得到了下面给出的错误: “抛出异常:读取访问冲突。这个是 0x12963854。” 我觉得这可能是一个简单的修复,我只是忽略了它。这一切都是使用最新版本的 Visual Studios 用 C++ 编写的。

2 个答案:

答案 0 :(得分:2)

您错误地将工资 highestotherHighest 用作数组 baseballArraybasketballArray 的索引!

答案 1 :(得分:0)

您的代码中有 3 个主要错误,按出现顺序排列:

  • highestotherHighest 未初始化
  • 正如 Kim Nyholm 所指出的,工资被用作指标
  • 然后将 highestotherHighest 用作薪水而不是索引
// Initialized as index of the first element
int highest = 0;
int otherHighest = 0;

for (int i = 0; i < SIZE; i++) {
    if (baseballArray[highest].getSalary() < baseballArray[i].getSalary())
        highest = i; // Stores the index

    if (basketballArray[otherHighest].getSalary() < basketballArray[i].getSalary())
         otherHighest = i; // Stores the index
}

// Compares the salaries
if (baseballArray[highest].getSalary() > basketballArray[otherHighest].getSalary())
    baseballArray[highest].printStats();
else if (basketballArray[otherHighest].getSalary() > baseballArray[highest].getSalary())
    basketballArray[otherHighest].printStats();
else // if (baseballArray[highest].getSalary() == basketballArray[otherHighest].getSalary())
    cout << "error";
相关问题