En théorie, tu peux alloué autant d'octets que de RAM disponible sur la bécane qui exécute le programme.
Compte tenu qu'une bécane moderne possède entre 4 et 32 Go (1/3 des bécanes ont 8Go selon les stats steam), il y a peu de chance d'en manquer dans le cadre d'un programme maison...
Quand on travaille sur un système avec peu de RAM, il est une bonne pratique de tester la valeur de retour de malloc à chaque fois. Si ça retourne NULL, c'est qu'il n'a pas réussi à allouer.
Pour ma part, je ne peux allouer plus de 1869 Mo. Il faudrait compiler en 64Bits pour aller plus loin je suppose.
En effet, en mode 32 bits, l'ensemble accessible à une application (code, dll, variables, ...) est limité à 3GB et à la mémoire disponible. Donc en mode 32bits, on a classiquement 2GB accessible.
En mode 64 bits, il y a aussi une limite qui est de plusieurs milliers de GB (4095GB il me semble), donc c'est souvent la RAM totale accessible moins la RAM utilisée par le reste des applications qui doit être accessible.
Pour ma part, je ne peux allouer plus de 1869 Mo. Il faudrait compiler en 64Bits pour aller plus loin je suppose.
En effet, en mode 32 bits, l'ensemble accessible à une application (code, dll, variables, ...) est limité à 3GB et à la mémoire disponible. Donc en mode 32bits, on a classiquement 2GB accessible.
En mode 64 bits, il y a aussi une limite qui est de plusieurs milliers de GB (4095GB il me semble), donc c'est souvent la RAM totale accessible moins la RAM utilisée par le reste des applications qui doit être accessible.
Sur un 32 bits, on ne peut manipuler que des registres de 32 bits, c'est à dire que pour toucher à la mémoire (jump, load, store), on ne peut indiquer que des nombres allant jusqu'à 2^32 ce qui vaut à peu près 4 GB (2^30 * 2^2 = 1 GB * 4).
Sur un 64 bits, on peut accéder jusqu'à 2^60 * 2^4 = 16 EB (Exa Bytes . 1 EB = 2^30 GB)
- Edité par potterman28wxcv 29 avril 2019 à 19:21:26
Allocation mémoire
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Bonhomme !! | Jeu de plateforme : Prototype.
En recherche d'emploi.