2012-11-25 3 views
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 런타임 -. 변수 '결과'주위에 스택이 손상되었다"

그 기능에 문제가없는 것 같습니다.

/** 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];} 

이 코드는 저와 I에게 주어진 - 모두 Matrix3x3 및 POINT2 클래스가이 코드를

float array[3][3]; 

과 POINT2의 배열은

float array [2]; 

경우 - Matrix3x3의 배열은 그냥 matricis 및 벡터를 사용하여 산술을 수행하는 이전 숙제가있었습니다. 내 코드는 모든 테스트를 통과 했으므로 Point2 ITCS4120 :: operator * (const Matrix3x3 &m, const Point2 &p) 코드가 올바른 것으로 가정합니다. 하지만 [] 연산자를 다르게 사용해야 할 수도 있습니다.

답변

6

귀하의 포인트는 두 float 개가 포함되어 있지만 3 개로 작성하고 있습니다.

+0

고마워요! 맞춰서 또 다른 쌍의 눈이 필요하다고 생각해. – Sterling

관련 문제