Tout programme qui s'exécute sur votre ordinateur utilise la mémoire . Le « tas » est la zone de mémoire utilisée pour l'allocation dynamique de la mémoire . Dans un programme C , les objets sont placés sur le « tas », et intégré dans les types de données tels que integer et long sont placés sur la « pile ». La pile est une zone plus petite vite de la mémoire qui est allouée par la dernière entré, premier sorti . Les variables globales et statiques sont également stockés sur le « tas » et restent en mémoire jusqu'à ce que le programme se termine. La taille du tas est un nombre prédéfini de pages , mais d'autres pages peuvent être alloués sur le tas . Instructions 1 Ge la poignée sur le tas par défaut du processus appelant au sein de votre programme C en utilisant " GetProcessHeap . " Définir une variable pour contenir la poignée appelé " hHandle . " Si " hHandle " est nulle , appelez « GetLastError " faire passer le message d'échec . 2 aide " hHandle " , appeler " HeapAlloc "pour allouer de la mémoire pour le tas de ce processus. Sérialisation assure que deux threads n'accèdent pas au même bloc de mémoire , par conséquent , utilisez uniquement le paramètre " HEAP_NO_SERIALIZE " lorsque l'application n'a qu'un seul fil ou poignées de ses propres appels de fil pour le segment de mémoire de l'application. Vous devrez également passer le nombre d'octets à allouer à " HeapAlloc . " 3 Utilisez " VirtualAlloc " pour réserver un bloc de pages pour le processus. Vous pouvez effectuer des appels supplémentaires pour " VirtualAlloc " à commettre des pages individuelles afin de ne pas consommer de l'espace de stockage jusqu'à ce que le processus en cours doit it.To mémoire allocate qui est par défaut à zéro et permet la lecture /l'accès aux régions commis des pages à écrire, Type : DWORD dsize = 468178553 ; VirtualAlloc (NULL, dsize , MEM_COMMIT , PAGE_READWRITE ) ;
|