Sobes.tech
Junior — Middle

Comment un programmeur peut-il déterminer la quantité de mémoire vive disponible dans le système lors de l'exécution du programme?

sobes.tech IA

Réponse de l'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;

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