Valgrind는 printf 및 puts와 같은 함수에서 여전히 도달 할 수있는 "오류"를보고하고 있습니다. 나는 이것에 대해 무엇을해야할지 정말로 모른다. 나는 그것이 학교 프로젝트이기 때문에 그것을 없애고 전혀 오류가 없어야한다. 이 문제를 어떻게 처리합니까? 보고서에서 나는이 함수들이 malloc
을 사용하고 있다는 것을 알았지 만, 나는 항상 그들이 스스로 메모리를 처리했다고 생각했다. 저는 Mac OS X을 사용하고있어서 valgrind와 OS 사이에 문제가있을 수 있습니까?여전히 puts 및 printf로 연결할 수 있습니다.
샘플 코드 :이이 표준 입출력 라이브러리로 인해 발생
==1954== 16,384 bytes in 1 blocks are still reachable in loss record 77 of 77
==1954== at 0x47E1: malloc (vg_replace_malloc.c:300)
==1954== by 0x183855: __smakebuf (in /usr/lib/system/libsystem_c.dylib)
==1954== by 0x198217: __swsetup (in /usr/lib/system/libsystem_c.dylib)
==1954== by 0x1B1158: __v2printf (in /usr/lib/system/libsystem_c.dylib)
==1954== by 0x1B16AF: __xvprintf (in /usr/lib/system/libsystem_c.dylib)
==1954== by 0x188B29: vfprintf_l (in /usr/lib/system/libsystem_c.dylib)
==1954== by 0x18696F: printf (in /usr/lib/system/libsystem_c.dylib)
==1954== by 0x1000036F3: twittear (main.c:138)
==1954== by 0x100003C8D: main (main.c:309
안녕하세요. 이제 샘플 코드를 추가했습니다! –
실제 오류는 무엇입니까? 그리고 당신은 그것이''puts()'를 따르는 반환에 있지 않을 것이라고 확신합니까? 즉'queue_see_first()'는 반환/종료 전에 해제되어야하는 메모리 ('user'로 반환)를 할당합니까? –
queue_input은 이전에 생성되었으며 다른 곳에서 삭제되었습니다. queue_see_first는 대기열에서 사용자가 해제해야 할 때 큐의 첫 번째 요소에 대한 포인터를 반환합니다. 실제 오류가 아니더라도 계속 진행되고있는 것을 알고 싶습니다. 도움 팀에 감사드립니다! –