#ifndef MEM_H_
#define MEM_H_
#include "Land.h"

// Mem -------- Gestion de la mémoire -----------------------------------------------
struct Mem 
{
static const int N = 100; 		// Nombre de Pile de Land.
static const int G = 10000;    	// Taille des grands espace mémoire en nombre de int.
static const int TG = 1000000;  // Taille des trés grands espace mémoire en nombre de int.
static Land *K;
static Land K1;
static Land K2;

static int Q();					// Calcule la quantité de mémoire occupée par les lands.
static int QP();				// Calcule la quantité de mémoire occupée par uniquement les piles les lands.
static int Qi();				// Calcule la quantité de mémoire occupée dans les lands.

static void InitMem(); 			// Alloue et initialise les lands K[1],K[2],..,K[N-1],K1,K2.
static void TermineMem();		// Libère tous les lands.

static int * Malloc(int & t);
static int * Calloc(int & t);
static int * Realloc(int*, int, int & t);
static void Free(int *p, int t);

static void Test(int);
static void TestMalloc();
static void TestCalloc();
static void TestRealloc();
static void TestFree();
static void Synopsis();

};

#endif
