2010-03-25 3 views
0

메모리 누수에 대한 응용 프로그램을 검사했을 때 누수가 12 번 표시됩니다. 이것의 효과는 무엇입니까?전역 변수로 인해 메모리 누수가 발생합니까?

#import "file1.m" 

int num; 

#import "file2.m" 

extern int num; 
num = 10; 

수있는이 원인 메모리 누수 아래와 같이

내가 전역 변수를 사용?

누구든지 도와주세요. 나는 프로그래밍의 초보자이다.

답변

2

나는 그것을 아주 많이 의심한다. 메모리 누수는 동적 인 할당 (즉, 컴파일 타임이 아닌 런타임 할당)을 잊어 버린 곳입니다. num과 같은 전역 변수는 실행 파일의 지속 기간 동안 존재해야하므로 누수로 간주되어서는 안됩니다.

다른 곳에서 봐야 할 것 같습니다.

아마도 누출 검사기의 결과물을 게시 한 경우 좀 더 도움이 될 수 있습니다.

3

아니요, 여기에 동적 메모리를 할당하지 않으므로 누출 될 수 없습니다.

"누수"도구를 사용하여 응용 프로그램을 실행하면 누수가 발생한 행을 볼 수 있습니다 - 실제로 메모리 누수가 발생하거나 누수가 의심되는 호출 스택을 보여주는 창 아래쪽에 "확장 세부 정보"단추가 있습니다.

3

주위에 int이 있으면 메모리 누수로 간주되거나 메모리 누수가 발생하지 않아야합니다. 보다 일반적인 글로벌 메모리 누수 (global-counted-as-memory leak)는 싱글 톤 객체에 대한 글로벌 포인터가 일단 초기화 된 다음 프로세스의 수명 동안 멈추는 경우입니다. 기술적으로 그렇지 않더라도 메모리 누수로 표시됩니다.

내가 걱정할 수있는 유일한 누출은 "실제"누수가되기 쉽기 때문에 비전 역이 아닌 비 정적 변수와 관련이 있습니다.

0

XCode 3.2가 있습니까? 어쩌면 정적 분석기 (빌드 및 분석)를 살펴볼 수 있습니다. 종종 메모리 누수를 찾는 데 도움이됩니다.

+0

찾았습니다 ... 정말 고마워요! – isarathg

관련 문제