Fórum

arrow_back

Duvidas Código do Projeto Wifi

FELIPE ULBRIK FELIN

09/02/2023 22:26:11

No programa desenvolvido no módulo de Projetos com Wifi foi utilizado as funções de alocação dinâmica de memória. Em (1) não deveria haver um cast de ponteiro para a função malloc? Em (2) porque foi feito o cast com (void*)? Pelo que entendi pelo help do mikroC não haveria necessidade de colocar cast. 


  
clist_t*
clist_create
   (uint16_t size)
{
   clist_t *res;
   
   /*
    * Aloca um novo objeto.
    */
   res = malloc(sizeof(clist_t));
   if(res == NULL) return NULL;
   res->dados = malloc(size);   (1)
   if(res->dados == NULL) {
      FreeMem((void*)res, sizeof(clist_t)); (2)
      return NULL;
   }
   
   /*
    * Inicia como um buffer vazio.
    */
   res->in = 0;
   res->out = 0;
   res->size = 0;
   res->total = size;
   return res;
}

FERNANDO SIMPLICIO DE SOUSA

12/02/2023 20:49:54

o retorno da função "malloc" é um ponteiro (void*), logo a função "free" deveria receber também um (void*). De qualquer forma, o cast está sendo realizado ao passar res para "FreeMem";  

Fique a vontade de realizar o cast conforme abaixo.;

res = (clist_t *) malloc(..);

Este site usa cookies para melhorar sua experiência. Política de Privacidade