• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nazgulled

Duas dúvidas simples relativamente ao uso de malloc() e realloc()

3 mensagens neste tópico

1) coiso = malloc(5 * sizeof(char*));

   

e depois se precisar de + 3, por exemplo, faria:

   

coiso = realloc(coiso, 3 * sizeof(char *)); ou coiso = realloc(coiso, 8 * sizeof(char *));

2) fileList = malloc(strlen((dpItem->d_name) + 1) * sizeof(char));

Visto o sizeof(char) ser igual a 1, eu estou a multiplicar o comprimento da string por 1, o que vai dar o próprio comprimento da string. Não faz lógica nenhuma ter ali o sizeof(char) pois n?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

1)

O correcto é:

coiso = realloc(coiso, 8 * sizeof(char *));

2)

Em principio sizeof(char) será em geral 1 byte, mas não convem partir desse pressuposto, já que o tamanho dos tipos pode depender da arquitectura da máquina.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora