Dividi o arquivo 2.c em 2 um, 2.c e outro 2.h
o arquivo 2.h é:
/* arquivo 2.h*/ |
#include "stdio.h" |
#include "stdlib.h" |
void *calloc2(int multiplicador, int Nbytes); |
e o arquivo 2.c é:
#include "2.h"
void *calloc2(int multiplicador, int Nbytes)
{/* Retorna um ponteiro com multiplicador*Nbytes bytes alocados */
void *p;
p = (void*)calloc(multiplicador, Nbytes);
if(p == NULL)
{
printf("!!!ERRO FALHA NA ALOCAÇÃO!!! ");
return NULL;
}
else
//printf("\n calloc2\n");
return p;
}
int main()
{
printf("\n Alocando memória no 2.c \n ");
int *p = (int*)calloc2(1,sizeof(int));
if(p == NULL)
exit(1);
printf("\n Memoria alocada! \n\n ");
printf("\n Liberando a memoria! \n\n ");
free(p);
printf("\n Memoria liberada! \n\n\n\n ");
p = (int*)calloc(1,sizeof(int));
if(p == NULL)
{
printf("!!!ERRO FALHA NA ALOCAÇÃO!!!");
exit(1);
}
printf("\n Memoria alocada! \n\n ");
printf("\n Liberando a memoria! \n\n ");
free(p);
printf("\n Memoria liberada! \n\n\n\n ");
printf("\n Alocando memória \n ");
p = (int*)calloc2(1,sizeof(int));
if(p == NULL)
exit(1);
printf("\n Memoria alocada! \n\n ");
printf("\n Liberando a memoria! \n\n ");
free(p);
printf("\n Memoria liberada! \n\n\n\n ");
return 0;
}
dei um:
# cc -o 2a 2.c
# ./2a
E o resultado foi:
Alocando memória no 2.c
Memoria alocada!
Liberando a memoria!
Memoria liberada!
Memoria alocada!
Liberando a memoria!
Memoria liberada!
Alocando memória
Memoria alocada!
Liberando a memoria!
Memoria liberada!
Para grar o arquivo 2.o :
# cc -c 2.c
Nenhum comentário:
Postar um comentário