Programação em c com alocação básica de memória
#include
typedef struct { unsigned char d[3];
} DATA;
/*********************************************************
Protótipo: void IniciarData(DATA **D)
Função: Iniciar um tipo DATA, alocando memória para um tipo DATA.
Parâmetros: O endereço de um ponteiro para um tipo DATA.
Retorno: Nenhum.
*********************************************************/
void IniciarData (DATA **D){ *D=(DATA*)malloc(sizeof(DATA)); //Alocando memoria para o tipo DATA if (!*D) //Confirmando alocacao da memoria memset(*D,'\0',sizeof(DATA)); return;
}
/*********************************************************
Protótipo: void FinalizarData(DATA *D)
Função: Finalizar um tipo DATA, liberando a memória alocada para um tipo DATA.
Parâmetros: O endereço de um tipo DATA.
Retorno: Nenhum.
*********************************************************/
void FinalizarData (DATA *D) { free(D); return;
}
/*********************************************************
Protótipo:
void AtribuirDiaData(DATA *D, unsigned char dia)
Função: Atribuir o dia para um tipo DATA.
Parâmetros: O endereço de um tipo DATA e o dia.
Retorno: Nenhum.
*********************************************************/
void AtribuirDiaData (DATA *D, unsigned char dia){ unsigned char dia0; dia0=diad[0]=D->d[0]+dia0; return;
}
/*********************************************************
Protótipo:
void AtribuirMesData(DATA *D, unsigned char mes)
Função: Atribuir o mês para um tipo DATA.
Parâmetros: O endereço de um tipo DATA e o mês.
Retorno: Nenhum.
*********************************************************/
void AtribuirMesData (DATA *D, unsigned char mes){ unsigned char mes0, mes1; D->d[1]=0; mes0=mes>>1; //alocando os bits 2, 3 e 4 de mes para as posicoes 1, 2 e 3 mes1=mesd[0]+mes0; D->d[1]=D->d[1]+mes1; return;
}
/*********************************************************
Protótipo: