Ste*_*ing 2 c++ stack stack-corruption
我知道这个主题有很多问题,但它们似乎都特定于代码.
我有这个功能 -
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
}
Run Code Online (Sandbox Code Playgroud)
它在返回语句中给出了一个错误,说"运行时检查失败#2 - 变量'结果'周围的堆栈已损坏."
我看不出那个功能有什么问题.Matrix3x3的阵列只是 -
float array[3][3];
Run Code Online (Sandbox Code Playgroud)
而Point2的数组是
float array [2];
Run Code Online (Sandbox Code Playgroud)
Matrix3x3和Point2类都有这个代码 -
/** 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];}
Run Code Online (Sandbox Code Playgroud)
这段代码是给我的,我以前做过一些功课,用点,母体和矢量做算术.我的代码通过了所有测试,所以我假设我的Point2 ITCS4120 :: operator*(const Matrix3x3&m,const Point2&p)代码是正确的.但也许我需要以不同的方式使用[]运算符?
| 归档时间: |
|
| 查看次数: |
2827 次 |
| 最近记录: |