Q&A

  • 널값을 리턴하려 하는데 오류가 납니다.
function UtLine.MakePointIntersect(ln : UtLine) : UtPoint;
begin
   if (IsIntersectToLine(ln) = False) or ((P1.X = P2.X) and (ln.P1.X = ln.P2.X)) then
     begin
       Result := nil;
     end
   else
     begin
       Result := UtPoint.Create;
       if (P1.X = P2.X) then
         begin
           Result.X := P1.X;
           Result.Y := ln.Slope * Result.X + ln.GetYIntercept;
         end
       else  if (ln.P1.X = ln.P2.X) then
         begin
           Result.X := ln.P1.X;
           Result.Y := Slope * Result.X + GetYIntercept;
         end
       else
         begin
           Result.X := (ln.GetYIntercept - GetYIntercept) / (Slope - ln.Slope);
           Result.Y := Slope * Result.X + GetYIntercept;
         end
     end;
end;

위에 처럼 함수를 만들어 사용할때 처음 if문에 조건을 만족하면

nil을 반환하도록 했는데요... 여기서 access violation 오류가 납니다.

어떤식으로 해야 오류가 안날런지요...

왜그런지 좀 답변 좀 주세요.. 저는 도저히 모르겠슴당..ㅠㅠ
1  COMMENTS
  • Profile
    이중철 2005.02.04 21:51
    처음구문
    if (IsIntersectToLine(ln) = False) or ((P1.X = P2.X) and (ln.P1.X = ln.P2.X)) then
    에서
    P1, P2 이 포인터 인가요
    만약 P1, P2의 값이 없을 수 있겠네요