2013-04-12 8 views
1

Я просто тестировал код c, который я писал, и обнаружил, что у меня много утечек памяти, поэтому я хотел посмотреть, откуда они пришли. Весь код у меня было:Утечки памяти без выделения памяти

int main() { 
    return 0; 
} 

Просто простой основной, что ничего не делал, и у меня были все эти утечки памяти:

==38882== HEAP SUMMARY: 
==38882==  in use at exit: 58,678 bytes in 363 blocks 
==38882== total heap usage: 514 allocs, 151 frees, 62,544 bytes allocated 
==38882== 
==38882== LEAK SUMMARY: 
==38882== definitely lost: 8,624 bytes in 14 blocks 
==38882== indirectly lost: 1,168 bytes in 5 blocks 
==38882==  possibly lost: 4,925 bytes in 68 blocks 
==38882== still reachable: 43,961 bytes in 276 blocks 
==38882==   suppressed: 0 bytes in 0 blocks 
==38882== Rerun with --leak-check=full to see details of leaked memory 
==38882== 
==38882== For counts of detected and suppressed errors, rerun with: -v 
==38882== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) 

Когда я запускаю этот код на компьютерах моего университета у меня нет утечек памяти , Есть ли что-то на моей локальной машине, которая вызывает много утечек памяти?

+0

Какая настройка вы используете? ОПЕРАЦИОННЫЕ СИСТЕМЫ? компилятор? –

+0

Я использую mac running mountain lion. Я компилирую с gcc. – iKTiKZ

+0

@KatieCalabro Valgrind на OS X и особенно на Mountain Lion ** очень глючит **. Вы, скорее всего, получаете ложные срабатывания. – 2013-04-12 23:00:15

ответ

0

Я получаю ту же ошибку на своем Mac. Это либо проблема valgrind, либо (скорее всего) проблема с библиотекой на Mac. Я бы предложил использовать valgrind только в Linux.

1

Все в порядке. В вашей программе используется библиотека времени выполнения (т. Е. libc или ее эквивалент), и библиотека выделяет некоторую память для собственных нужд.