2
我知道这个主题有很多问题,但它们看起来都是特定于代码的。围绕变量的堆栈损坏
我有这个功能 -
Point2 ITCS4120::operator* (const Matrix3x3& m, const Point2& p) {
Point2 result;
for(int i=0;i<3;i++) {
result[i] = (m[i][0]*p[0]) + (m[i][1]*p[1]) + (m[i][2]);
}
return result; //error here
}
它给了我一个错误的return语句说:“运行时检查失败#2 - 围绕堆栈变量‘结果’已损坏。”
我看不出该功能有什么问题。该MATRIX3X3的数组只是 -
float array[3][3];
和点2的阵列是
float array [2];
无论是MATRIX3X3和点2班有这样的代码 -
/** Write access for element in row [i] */
inline Scalar* operator[](int i) {return array[i];}
/** Read access for element in row [i] */
inline const Scalar* operator[](int i)const {return array[i];}
此代码是给我和我有一些以前的作业用分数,matricis和向量做算术。我的代码通过了所有测试,因此我假定我的Point2 ITCS4120 :: operator *(常量Matrix3x3 & m,const Point2 & p)代码是正确的。但也许我需要不同地使用[]运算符?
谢谢!猜猜我只需要另一双眼睛。 – Sterling