2012-06-21 1 views
0

제게는 의미가없는 문제가 있습니다. 그래서 여기에 간다 :C 함수를 호출 한 후 스택 스매싱이 감지되었습니다.

나는 단어가 파일에 나타나는 횟수를 세는 함수를 가지고있다. 따라서이 함수는 정수 (int)를 반환한다. 따라서 다른 함수에서는 "카운터"를 사용합니다. 이제 웬일인지 발견 된 오류를 스매싱하는 스택을 시작하기로 결정했습니다. 나는 전체 프로그램을 2 주 동안 테스트 해왔고 완벽하게 작동했습니다. 이제 나는 그 오류를 얻었는데, 실제로는 의미가 없습니다. 세상에서 무슨 일이 벌어지고있는거야? 그리고 오류가 바로 거기에, 함수가 카운터를 가지고 그것을 반환하면, 그것은 발견 된 오류를 스매싱 스택을 시작합니다.

편집 : 계속 검색하고 예, int 함수를 반환 할 때 스택 오류가 감지되었습니다. 어떤 아이디어? 내가 그 코드를 꺼내면, 충돌하지 않습니다. 정말로 나는 모른다.

어떤 제안이라도?

감사합니다 ...

+0

단어 계산 기능에서 재귀를 사용합니까? – TJD

+0

나는 두 가지 프로그램, 재귀 버전과 비 재귀 버전을 만들었다. 웬일인지 두 가지 모두 실패하고 있습니다 ... 하지만 재귀라고 할 수 있습니까? 나는 그것을 이해할 수 없다. – Alessandroempire

+0

42 행에서 배열의 범위를 벗어난 배열이 인덱싱됩니다. – wildplasser

답변

2

내가 디버깅 정보 및 Valgrind 아래를 실행하여 프로그램을 컴파일 제안 할 수 있습니까? this related question도 참조하십시오.

필요한 경우 Valgrind를 사용하여 an older answer of mine에 대한 몇 가지 힌트를 게시했습니다.

+0

나는 어떤 제안이든 열려 있습니다. 나는 그것을 시도 할 것이다. 아직도 int 함수를 반환하는 동안이 오류를 얻는 것이 걱정됩니다 ... – Alessandroempire

+0

@Alessandroempire : 실제 오류가 다른 곳에있을 가능성이 큽니다. Valgrind를 사용해보십시오 - 일반적으로 프로그램이 무엇을하고 있는지보다 잘 알고 있습니다 ... – thkala

+0

그래도 똑같지 만 그 기능을 없애면 너무 효과가 있습니까? 내가 valgrind를 발견하면 알려 주겠다. – Alessandroempire

관련 문제