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값을 바꿔도 적용이 안되는거같아요 ㅠ

어떤부분에서 문제인걸까요?

simm4256   7년 전

tempa, tempb 배열도 전역변수인가요?

전형적인 값에 의한 호출 / 참조에 의한 호출 오류로 보여집니다.

minhas2   7년 전

아뇨 tempa,tempb는 input함수안에있는 지역변수입니다ㅜ

지역변수면 문제되지 않는거아닌가욥?

chogahui05   7년 전

보통 strlen으로 길이 측정을 하는 경우

이런 식으로 작성을 하십니다.

chogahui05   7년 전

정확한 답변을 얻으시려면 풀 소스 코드를 올리시는 게 좋을 거 같네요.

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