Pure Pascal en interne : Gestion dynamique de la mémoireContrairement à de nombreux autres systèmes Pascal, avec Pure Pascal, vous n'avez pas à spécifier la taille de la zone de mémoire dynamique (le soi-disant tas). Au lieu de cela, le tas est étendu si nécessaire en demandant des blocs de mémoire volumineux (32 Ko) au système d'exploitation. Si un tel bloc redevient complètement vide en appelant Dispose, Freemem ou Release, le bloc est retourné au système d'exploitation. Comportement en cas de mémoire insuffisanteLa bibliothèque signale normalement une erreur d'exécution immédiatement si un appel à New ou Getmem ne peut pas être satisfait en raison d'une mémoire insuffisante.Toutefois, vous pouvez modifier ce comportement en pointant la variable de pointeur HeapError dans l'unité SYSTEM vers une routine que vous avez déclarée. Cette routine est appelée lorsque la mémoire est épuisée. Il doit être déclaré comme suit: Le paramètre Size représente la taille de la zone mémoire demandée.function HeapFunc(Size: longint): integer; La fonction peut maintenant essayer, par exemple, de libérer de la mémoire qui n'est pas absolument nécessaire. Il utilise la valeur de retour pour signaler les réussites qu'il a eues. Trois valeurs de retour différentes sont possibles:
et installez-le au début de votre programme dans la variable HeapError:
|