valgrind라는 프로그램이 macOS mojave버전 이하에서 작동하는 메모리 누수를 검사 프로그램이다.
macOS Catalina부터는 작동을 안하는 관계로 메모리 누수를 검사하는 방법을 정리했다.
./a.out
이런식으로 실행하고 leaks a.out
system("leaks a.out > leaks_result_temp; cat leaks_result_temp | grep leaked" && rm -rf leaks_result_temp);
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *heap;
heap = malloc(sizeof(char) * 6);
heap[0] = 'h';
heap[1] = 'e';
heap[2] = 'l';
heap[3] = 'l';
heap[4] = 'o';
heap[5] = '\0';
free(heap);
system("leaks a.out > leaks_result; cat leaks_result
| grep leaked && rm -rf leaks_result");
return (0);
}
코드 태그 부분에 오타가 있습니다! (한줄짜리 코드태그)
system("leaks a.out > leaks_result_temp; cat leaks_result_temp | grep leaked" && rm -rf leaks_result_temp);
를
system("leaks a.out > leaks_result_temp; cat leaks_result_temp | grep leaked && rm -rf leaks_result_temp");
로 쓰면 정상작동 됩니다.
유용하게 쓰겠습니다 감사합니다~~