Sobes.tech
Junior — Middle

¿De qué manera puede un programador determinar la cantidad de memoria RAM disponible en el sistema durante la ejecución del programa?

sobes.tech AI

Respuesta de la IA

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

Для 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;

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