| 
 
	
		| 이전 주제 보기 :: 다음 주제 보기 |  
		| 글쓴이 | 메시지 |  
		| 강동현 
 
 
 가입: 2011년 9월 26일
 올린 글: 19
 
 
 | 
			
				|  올려짐: 2016년6월13일 5:52    주제: eo_test5.k 질문입니다. |   |  
				| 
 |  
				| /* x is even */ /* quiz */
 a := 1;
 b := 2;
 
 x := readInt;
 if (x) (p := &a) (p := 10);
 if (x) (p := &b) (p := p + 1);
 c := *p /* p must point to {b}, not {a, b}. Why? */
 
 에서, x가 0이 들어올 경우 c:= *p에서 에러가 날 수 있으므로 잘못된 코드 아닌가요?
 |  |  
		| 위로 |  |  
		|  |  
		| 최재승 
 
 
 가입: 2012년 9월 10일
 올린 글: 211
 
 
 | 
			
				|  올려짐: 2016년6월13일 10:16    주제: |   |  
				| 
 |  
				| 안녕하세요, 
 말씀하신대로 입력이 0이 들어오면 에러가 발생할 수 있습니다. Quiz3에서 분석기는 잘 도는 프로그램만 입력으로 받는다고 가정한 것을 깜박했네요.
 
 해당 예제는 아래와 같이 수정하도록 하겠습니다.
 예제의 핵심은 그대로이므로 (두번째 if문을 실행 후에 p가 a의 주소를 가리키지 않음) 이 수정 때문에 특별히 분석기를 고치실 일은 없을 것입니다.
 
  	  | 코드: |  	  | a := 1;
 b := 2;
 
 x := readInt;
 if (x) (p := &a) (p := 10);
 if (x) (p := &b) (p := p + 1);
 /* p must be (odd, {b}) here, not (odd, {a, b}). Why? */
 if (x) (c := *p) (c := 4)
 
 | 
 
 조교 드림
 |  |  
		| 위로 |  |  
		|  |  
		|  |  
  
	| 
 
 | 새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다
 주제를 수정할 수 없습니다
 올린 글을 삭제할 수 없습니다
 투표를 할 수 없습니다
 
 |  
 Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
 Translated by kss & drssay
 |