我试图对包含传递给函数的对象的两个单独数组进行排序,以便找到最高薪水。我以为我已经弄明白了,但后来我得到了下面给出的错误: “抛出异常:读取访问冲突。这个是 0x12963854。” 我觉得这可能是一个简单的修复,我只是忽略了它。这一切都是使用最新版本的 Visual Studios 用 C++ 编写的。
答案 0 :(得分:2)
您错误地将工资 highest
和 otherHighest
用作数组 baseballArray
和 basketballArray
的索引!
答案 1 :(得分:0)
您的代码中有 3 个主要错误,按出现顺序排列:
highest
和 otherHighest
未初始化highest
和 otherHighest
用作薪水而不是索引// 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";