минимальный пример,
int main( int argc, char* argv[] ) { mcheck( NULL ); mtrace();
display = XOpenDisplay( NULL ); XCloseDisplay( display );
muntrace(); return 0; }
результат,
bash-3.1$ mtrace malloc.trace
Memory not freed: ----------------- Address Size Caller 0x0804fcc8 0x1a at 0xb724eb30 0x080526b0 0x8 at 0xb7e44452
без X[Open/Close]Display
bash-3.1$ mtrace malloc.trace No memory leaks.
а в моей чудопрограмме 530 таких неосвобождений памяти, я столько раз malloc ещё не успел вызвать, немогут же иксы быть настолько дырявы?