Назад к вопросам
Junior — Middle
86
Каким образом программист может определить объем оперативной памяти, доступной в системе, в ходе выполнения программы?
Компании, где спрашивали
А-стор
Ответ от нейросети
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;
Таким образом, программист может динамически получить информацию о доступной памяти и адаптировать поведение программы.