Skip to content

Instantly share code, notes, and snippets.

@brun0xff
Created May 11, 2017 00:43
Show Gist options
  • Save brun0xff/badbf1950053f0c07ca52412d4471121 to your computer and use it in GitHub Desktop.
Save brun0xff/badbf1950053f0c07ca52412d4471121 to your computer and use it in GitHub Desktop.
//aloca.h
#ifndef ALOCA_H
#define ALOCA_H
#define BESTFIT 0
#define FIRSTFIT 1
#define NEXTFIT 2
//TAMANHO MÁXIMO DE ALOCACAO: 65535 (maior unsigned short)
class meualoc
{
private:
char * memoria; //char* pois eh byte a byte
int politicaMem;
int tamanhoMemoria;
public:
//tamanhoMemoria vai definir o tamanho da memória que o alocador vai utilizar
//politicaMem define como escolher o bloco de onde saira a memória
meualoc(int tamanhoMemoria, int politicaMem);
//Pega um pedaco da variavel memoria e aloca, retornando o
//ponteiro para o comeco dessa regiao e atualizando a lista de livres.
char *aloca(unsigned short int tamanho);
//Verifica se a posicao dada pelo ponteiro esta alocada
char* verifica(char* ponteiro, int posicao=0);
//Libera o espaco ocupado na posicao, de forma analoga ao free.
//Ou seja, liberar toda a memoria alocada para este ponteiro na funcao aloca.
int libera(char* ponteiro);
//Imprime o numero de elementos na lista de vazios,
//o maior e a media de tamanhos dos blocos vazios
void imprimeDados();
~meualoc();
};
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment