카테고리 없음

두 번째 인수부터 받지 못함

hyuckkim 2021. 6. 17. 08:44

프로젝트 : 안녕 프로그래밍 언어

https://github.com/hyuckkim/anyoung 

 

hyuckkim/anyoung

Contribute to hyuckkim/anyoung development by creating an account on GitHub.

github.com

발견 :

변수 입출력을 확인하기 위해 "a를 10으로 정하기" 를 입력했다.

"a를 말하기" 구문에서 0이 표시되어 "a를 10으로 정하기" 구문이 정상적으로 실행되지 않았음을 알 수 있었다.

 

찾아본 부분 : 

 - 실제로 변수가 대입되는 Function_Set() 부분을 찾아보았으나 a어야 할 value1이 숫자 10이고, 숫자 10이어야 할 value2는 비어 있었다. 함수가 시작될 때부터 값이 틀려 있었다.

 - 가장 최근에 바꾼, 인수를 설정하는 부분 splitFactors()를 찾아보았다. startF와 endF를 이상 없이 인수 2개 모두 잘 나누었다. 

 - 자른 인수 가지고 연산을 진행하는 getValueinFactor를 찾아보았다. 이쪽도 처리방식을 push / pop 함수와 전역변수를 사용하게 했고 함수를 분리해서 여기서 오류가 발생할 줄 알았다. 여기도 정상적으로 처리했다.

 - 시작 줄부터 한 줄씩 실행해봤다. 문제가 main에 있었다.

 

문제 : 

NewF->factors[i].value로 써야될 부분을 NewF->factors->value로 사용했다.

오류로 표시됐을 때 아무 생각 없이 쓴 부분이었을 것이다.

 

왜 문제였는가 : 

pointer[i]. 는 포인터를 배열로 생각하고 그 배열의 i번째 값을 얻지만,

pointer-> 는 포인터를 단순 주소로 생각하고 그 값을 사용한다.

factors는 배열이었으므로 [i]를 사용해야겠지만 ->로 잘못 입력해 0번 데이터에만 대입하게 됐다.

 

끝.