Я создал простую программу, которая распределяет целочисленный массив в куче / свободном хранилище каждый раз, когда пользователь нажимает «ввод».Моей конечной целью было увидеть изменение объема памяти кучи при каждом новом выделении.Я делаю это, проверяя файл состояния, чтобы увидеть изменение размера памяти кучи.К сожалению, при каждом выделении файл статуса не обновляется.Похоже, что единственный способ получить файл для обновления - это спамить программу с кучей возвратов каретки, а затем она обновляется.Почему он это делает?Мне нужен надежный метод для определения диапазона памяти, который мои программы занимают из динамического распределения, когда я работаю над встроенной системой.Кто-нибудь может предоставить какие-либо сведения о / proc // status или другой метод, который можно определить размер памяти кучи?
Кроме того, статус предоставляет память в килобайтах, было бы неплохо увидеть эту информацию с большей детализацией в байтах - есть ли способ сделать это?Спасибо.
Вот пример программы того, что я сделал:
#include <cstddef>
#include <iostream>
int keepLooping()
{
return 1;
}
int main (int argc, char* argv[])
{
int exit_code = 0;
int fd = -1;
do
{
do
{
std::cout << '\n' << "Press a key to allocate data to the heap...";
} while (std::cin.get() != '\n');
int *someArray = new int[1000];
}
while (keepLooping());
return exit_code;
}