static int lengtha, lengthb; //전역변수
int input(void) {
//for (; tempa[lengtha] != NULL; lengtha++); //for (; tempa[lengthb] != NULL; lengthb++); lengtha = strlen(tempa); lengthb = strlen(tempb);
}
처음엔 strlen함수로 길이구하려고 했는데
이 홈페이지에선 컴파일에러가 나서 위에 for문으로 길이측정을 했습니다.
비주얼스튜디오에선 디버깅해서 값보면 strlen()썼을때와 똑같이 값이 들어갔는데
최종결과는 다르게나옵니다.. ㅜㅜ
함수내부에서 lengtha값을 바꿔도 적용이 안되는거같아요 ㅠ
어떤부분에서 문제인걸까요?
tempa, tempb 배열도 전역변수인가요?
전형적인 값에 의한 호출 / 참조에 의한 호출 오류로 보여집니다.
아뇨 tempa,tempb는 input함수안에있는 지역변수입니다ㅜ
지역변수면 문제되지 않는거아닌가욥?
보통 strlen으로 길이 측정을 하는 경우
이런 식으로 작성을 하십니다.
댓글을 작성하려면 로그인해야 합니다.
minhas2 7년 전
static int lengtha, lengthb; //전역변수
int input(void) {
//for (; tempa[lengtha] != NULL; lengtha++);
//for (; tempa[lengthb] != NULL; lengthb++);
lengtha = strlen(tempa);
lengthb = strlen(tempb);
}
처음엔 strlen함수로 길이구하려고 했는데
이 홈페이지에선 컴파일에러가 나서 위에 for문으로 길이측정을 했습니다.
비주얼스튜디오에선 디버깅해서 값보면 strlen()썼을때와 똑같이 값이 들어갔는데
최종결과는 다르게나옵니다.. ㅜㅜ
함수내부에서 lengtha값을 바꿔도 적용이 안되는거같아요 ㅠ
어떤부분에서 문제인걸까요?