snna58   2년 전

31번째줄 while (!op.empty() && op.top() == '*' || op.top() == '/') 코드에서

( op.top() == '*' || op.top() == '/'  ) 이렇게 괄호가 없어도 비쥬얼에서는 정상작동하는데

제출하니까 segfault가 생깁니다. 우선순위때문일까요?  왜 segfault가 생기는지 아시는분 있나요?ㅠㅠ

needsomecash   2년 전

우선순위 때문인 것 같습니다 &&가 ||보다 우선순위가 더 높습니다.

스택이 비어있는 경우 !op.empty() && op.top=='*' 가 false가 나올 것이고, 그다음 op.top()=='/'를 실행할 것인데

스택이 비어있을 때 top()으로 접근시 오류가 납니다.

snna58   2년 전

감사합니다~!

댓글을 작성하려면 로그인해야 합니다.