PpHd > Je trouve ça assez bizarre que tu comptes la mémoire virtuelle allouable en utilisant des malloc. En tout cas sur Windows, j'aurais tendance à penser que tu obtiens de meilleurs résultats avec VirtualAlloc:
#include <stdio.h>
#include <Windows.h>
int main(int argc, char** argv)
{
const SIZE_T size = 4 * 1024 * 1024;
SIZE_T allocated = 0;
while (VirtualAlloc(NULL, size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE) != NULL)
{
allocated += size;
}
printf("Max allocatable virtual memory=%fGb\n", allocated / 1024 / 1024 / 1024.0);
return 0;
}
Avec le code ci-dessus, j'obtiens ça:
32 bits: Max allocatable virtual memory=1.972656Gb
64 bits: Max allocatable virtual memory=17.859375Gb
Avec ton exécutable, j'obtiens ça, mais ça fait gravement freezer le PC pendant presque 1 minute: (i.e. je peux même plus bouger la souris

)
64 bits: Max allocatable virtual memory=17.718750Gb
Au final, ça donne un résultat comparable, mais faut savoir que les chiffres que j'obtiens sont pour un système avec 8Go de RAM et pas mal d'applications ouvertes.
J'ai fermé Steam et j'ai gagné 0.1 Go quasi instantanément, je vais voir ce que ça donne avec Chrome fermé.
EDIT: Avec les applications graphiques fermées, j'obtiens 22.394531Gb… Et 1,5Go de mémoire utilisé d'après le gestionnaire des tâches. J'aurais tendance à en conclure que mon Windows se permet d'autoriser jusqu'à 3x la mémoire physique du système, tout processus confondus.