2017-10-26 6 views
0

안녕 내 Valgrind 날 메모리 오류를 보여줍니다하지만 그것을 찾을 수 없습니다.C valgrind 메모리 누수

== 18,608 == HEAP 요약 :

== 출구 사용 18,608 == 1 개 블록

== 18,608 == 전체 힙 사용량의 88 바이트 : 4 allocs 3 2,220 바이트

== 18,608 ==

== 18,608 == 1하지 않은 해제 블록

== 186 포인터 검색 할당 해제 검사 08 == 53,708 바이트

== 18608 ==

== 1 개 블록에 88 바이트는 확실히 손실 기록 1 0x402D17C에서 18,608 == ==

1에서 길을 잃었 18,608 == : malloc에 ​​

(/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so에서) == 0x8이 0485BF하여 18,608 == (안녕히)에 pmalloc

== 0x8048680하여 18,608 == 주된 (auf로)

== 18,608 ==

== 18,608 == LEAK 요약 : 88 바이트를 1 개 블록

== 18,608 == 간접적으로 손실 : 0 바이트 18,608 == 확실히 소실

== 0 블록

== 18608 == 가능성 손실 : 0 바이트를 0 블록

== 18608 == 여전히 연결할 수 : 0 블록

== 18608 0 바이트 억제 == 0 0 바이트 블록

== 18,608 ==

==에서 18,608 == ERROR 요약 : 1 컨텍스트 (억제 : 0 0) 1 에러

== = 18,608 = 오류 요약 : 1 컨텍스트에서 1 오류 (표시 안 함 : 0에서 0)

+2

: 첫 번째 리소스를 해제하지 않습니다하지만 당신은 아무것도하지 않고 두 번째 무료 : 당신은 같은 것을 할 것

print_prim(pmalloc(n), laenge); free(pmalloc(laenge)); 

제대로 첫 번째 자원을 확보하기를 이미지로 표시하는 대신 여기에 코드를 붙여 넣으시겠습니까? – frslm

+1

'pmalloc'의 반환 값을 저장해야합니다. 그리고 나서 '자유'를 사용합니다. – BLUEPIXY

+0

답변 주셔서 감사하지만 내가 어떻게 이해하지 못하는 반환 값을 저장합니까 –

답변

1

두 개의 다른 int *을 할당합니다. 당신이 할 수주십시오

int *p = pmalloc(n); 
print_prim(p, laenge); 
free(p);