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