Sobes.tech
Back to questions
Junior — Middle
87

Каким образом программист может определить объем оперативной памяти, доступной в системе, в ходе выполнения программы?

Companies where asked
А-стор

Answer from AI

sobes.tech 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;

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