Нет.
Поскольку необходимая функциональность предназначена для отладки, для вас будет гораздо разумнее использовать отладчик или учет ресурсов операционной системы для мониторинга использования памяти процессом, а не пытатьсязапишите это в вашу программу.
Если вы действительно хотите, чтобы ваша программа отслеживала использование своей памяти, единственный переносимый способ сделать это - избегать использования malloc
и * 1008.* напрямую и вместо этого вызывайте их через оболочки, которые увеличивают / уменьшают счетчик.Это не будет учитывать фрагментацию памяти, но если вы заинтересованы в использовании логической памяти вашей программы, а не в воздействии на физические ресурсы, то счетчик, реализованный таким образом, может на самом деле более информативен , чем анализ рабочейучет ресурсов системы.
Если вы заботитесь только о конкретной целевой платформе или семействе платформ, могут существовать и функции, выходящие за рамки стандарта C, которые делают то, что вы хотите.В POSIX, поиск getrusage
.