Sobes.tech
Junior — Middle

Чӣ гуна барномасоз метавонад ҳаҷми хотираи оперативиро, ки дар система дастрас аст, дар вақти иҷрои барнома муайян кунад?

sobes.tech AI

Ҷавоб аз AI

Определить объем доступной оперативной памяти во время выполнения программы можно разными способами, в зависимости от ОС.

Для Linux можно прочитать информацию из файла /proc/meminfo или использовать системные вызовы:

#include <sys/sysinfo.h>

struct sysinfo info;
if (sysinfo(&info) == 0) {
    unsigned long total_ram = info.totalram * info.mem_unit;
    unsigned long free_ram = info.freeram * info.mem_unit;
    // total_ram и free_ram в байтах
}

Для Windows можно использовать функцию GlobalMemoryStatusEx:

#include <windows.h>

MEMORYSTATUSEX statex;
statex.dwLength = sizeof(statex);
GlobalMemoryStatusEx(&statex);

DWORDLONG total_ram = statex.ullTotalPhys;
DWORDLONG free_ram = statex.ullAvailPhys;

Таким образом, программист может динамически получить информацию о доступной памяти и адаптировать поведение программы.