2010-08-25 8 views
2

В настоящий момент я экспериментирую с языком c, но у меня есть некоторые проблемы с распределением памяти. Через некоторое время мне придется перезагрузить компьютер, потому что моя память заполнена. Есть ли способ сообщить компилятору, какие массивы не освобождаются после запуска программы?Распределение памяти

Thx ответы

+0

Очень удивительно. Не могли бы вы разместить здесь свой код? – Joe

+1

, даже если у вас есть утечки памяти, он будет восстановлен ОС, когда ваш процесс завершится. Поэтому я не верю, что это причина того, что ваша оперативная память заполнена. – Naveen

+0

Именно то, что я пытался сказать в своем ответе. – ckv

ответ

0

У вас есть инструменты, которые могут рассказать вам об утечках памяти. Составители, которых я боюсь, могут оказаться нецелесообразными для этой цели.

Вы также можете использовать DevPartner или Valgrind для анализа утечек памяти на случай, если вы их подозреваете. Но для перезагрузки системы из-за проблем с памятью, как долго вы запускаете приложение перед выполнением перезапуска.

Как вы узнали, что это проблема, связанная с памятью.

2

Вы ничего нам не сообщили о своем компиляторе, ОС, платформе ... так что остальное могло быть только диким догадками.

Это звучит так, что у вас есть мертвые процессы или что-то подобное, которые сохраняют вашу память в фоновом режиме. В Linux у вас есть top (и внутри top нажмите M), чтобы проверить процессы, запущенные на вашей системе, и сколько памяти, времени и т. Д. Они потребляют. Сделайте это, чтобы увидеть, что происходит на вашей машине, и не перезагружайте его вслепую, не зная причины.

Существуют эквивалентные инструменты для всех других операционных систем, которые позволяют вам проверять текущее состояние процессов.

0

Прежде всего, лучше проверить исходный код, если вы находитесь под Linux, используя «splint» для вашего источника, и это будет много отображать вас, попытайтесь исправить эти предупреждения или ошибки, если все будет сделано, перекомпилируйте ваш источник и попробуйте «valgrind» к разуму.

Вы можете увидеть ссылку на шину через свой официальный сайт и так же как valgrind.

лубок: www.splint.org

Valgrind: valgrind.org

Успехов ~~~

Смежные вопросы